Убрать последний слэш в адресе каталога

12
P
На сайте с 20.04.2019
Offline
13
507

В корневом каталоге сайта site находится папка dir. При обращении по адресу site/dir происходит переадресация на site/dir/. (При этом отображается содержимое файла site/dir/index.html, как и должно быть.)

1. Что надо прописать в .htaccess (желательно в локальном site/dir/.htaccess), чтобы не происходило редиректа с site/dir на site/dir/ ? При этом при обращении к site/dir по-прежнему должен отображаться site/dir/index.html.

2. Имеет ли значение для гугла, если ранее страница была проиндексирована по адресу site/dir, все ссылки на нее как site/dir, но теперь она редиректится на site/dir/ ?

B
На сайте с 27.11.2019
Offline
5
#1

RewriteRule (.+)/$ /$1 [L,R=301]

IL
На сайте с 20.04.2007
Offline
412
#2
plustilino:
ри обращении по адресу site/dir происходит переадресация на site/dir/.

Скорее всего, это делает mod_dir - проверить добавив в .htaccess (можно в конкретный <Location "/pat/of/site">

    DirectorySlash Off
plustilino:
все ссылки на нее как site/dir, но теперь она редиректится на site/dir/ ?

Если 301 редирект - вес будет передаваться, адреса через некоторое время склеятся. Пользователь придёт, попадёт "куда надо"...

P
На сайте с 20.04.2019
Offline
13
#3

Если добавить

<Location "/dir">

DirectorySlash Off
</Location>

получаю 500 Internal server error.

Если

RewriteRule (.+)/$ /$1 [L,R=301]

без изменений.

IL
На сайте с 20.04.2007
Offline
412
#4
plustilino:
получаю 500 Internal server error.

В логе apache должны быть подробности ошибки..

P
На сайте с 20.04.2019
Offline
13
#5
ivan-lev:
В логе apache должны быть подробности ошибки..

[Sun May 10 16:12:22 2020] [alert] [client XXXXX] /home/xxx/site/public_html/.htaccess: <Location not allowed here

Полный адрес ничего не меняет.

S
На сайте с 30.09.2016
Offline
459
#6
plustilino:
Полный адрес ничего не меняет.

Естественно. Потому что

Context: server config, virtual host
Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
IL
На сайте с 20.04.2007
Offline
412
#7
plustilino:
<Location not allowed here

Да, Location в .htaccess не работает..

Попробуйте без него.

P
На сайте с 20.04.2019
Offline
13
#8
ivan-lev:
Попробуйте без него.

Так перенаправление отключается, но содержимое файла index.html перестает отображаться даже если добавить DirectoryIndex index.html

В результате Forbidden.

S
На сайте с 30.09.2016
Offline
459
#9
plustilino:
чтобы не происходило редиректа с site/dir на site/dir/

А он происходит?

IL
На сайте с 20.04.2007
Offline
412
#10
plustilino:
но содержимое файла index.html перестает отображаться даже если добавить DirectoryIndex index.html

А почему Вы считаете, что он в этом случае должен отображаться?.

https://httpd.apache.org/docs/2.4/mod/mod_dir.html#directoryindex

The DirectoryIndex directive sets the list of resources to look for, when the client requests an index of the directory by specifying a / at the end of the directory name.
plustilino:
При этом при обращении к site/dir по-прежнему должен отображаться site/dir/index.html.

Внешний редирект от Apache убрали.. Теперь колдуйте с "внутренними" редиректами.. )

Sitealert:
А он происходит?

После DirectorySlash off по идее не должен... Видимо, этим подтверждается:

plustilino:
Так перенаправление отключается,
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий