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


plustilino
517

В корневом каталоге сайта 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/ ?


botobug

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


ivan-lev

plustilino:
ри обращении по адресу site/dir происходит переадресация на site/dir/.

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

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

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


plustilino

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

<Location "/dir">

DirectorySlash Off
</Location>

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

Если

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

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


ivan-lev

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

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


plustilino

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

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

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


Sitealert

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

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

Context: server config, virtual host


ivan-lev

plustilino:
<Location not allowed here

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

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


plustilino

ivan-lev:
Попробуйте без него.

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

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


Sitealert

plustilino:
чтобы не происходило редиректа с site/dir на site/dir/

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


ivan-lev

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:
Так перенаправление отключается,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *