Удаление завершающей косой черты в URL не работает в подкаталоге


Следующее правило работает для удаления последней косой черты для всех страниц в моем веб-Корне:

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

Однако он не работает, когда помещается в подпапку. Я также пытался:

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

Безрезультатно. Что происходит, это перенаправляет

Http://example.com/testfolder/testpage/

К

Http://example.com/testpage

Что я упускаю? Заранее спасибо!

3 2

3 ответа:

Вы пробовали опустить ведущую косую черту из вашей замены?

RewriteRule ^(.+)/$ $1 [L,R=301]
Это просто бросок камня от того, что у вас есть. Контекст перезаписи каталога (находящийся "в" / testfolder) может быть основной причиной проблемы.

Вы можете определить это в переменных, а также убедитесь, что в вашем php включены моды перезаписи.ini, если нет другого способа сделать то, что вам нужно.

Исправление косой черты в конце выполняется mod_dir. Перезаписи в контексте каждого каталога повторно вводятся в цепочку обработки URL-адресов и снова подлежат исправлению.

Поведение настраивается. Например,

<Directory /path/to/wherever>
DirectorySlash Off
...
</Directory>

Контекст для этого не только Directory: это конфигурация сервера, виртуальный хост, каталог,.htaccess.