#apache #.htaccess
#apache #.htaccess
Вопрос:
Если у меня есть этот код в моем .htaccess в корне моего сайта:
RewriteCond %{REQUEST_URI} ^/foo/bar/
RewriteRule ^foo/bar(.*)$ http://example.org/foo/?file=$1 [P,QSA]
И иметь такую файловую структуру:
foo
-- index.php
-- bar
-- qaz
-- file.txt
И я запрашиваю страницу, на которую http://example.org/foo/bar/qaz/
она будет перенаправляться на сервере http://example.org/foo/?file=/qaz/
.
Однако, если я запрошу страницу, http://example.org/foo/bar/qaz
она будет перенаправлена на http://example.org/foo/?file=/qaz
, однако она будет отображаться http://example.org/foo/bar/qaz/?file=/qaz
в браузере.
Как мне включить DirectorySlash, но при этом скрыть запрос от пользователя?
Ответ №1:
DirectorySlash выполняет это, только если существует каталог ‘/foo/bar/qaz’.
DirectorySlash не учитывает базу перезаписи. Вы могли бы отключить это и сделать это самостоятельно с помощью этого:
RewriteCond %{DOCUMENT_ROOT}/$1 -d
RewriteRule ^(.*[^/])$ $1/ [R,L]