У меня странная проблема с apache mod_rewrite.Мне нужно скрыть подкаталог от пользователя, но перенаправить каждый запрос в этот подкаталог.Я обнаружил несколько схожих проблем в stackoverflow, но ничего не подходит, поэтому я решил опубликовать новый вопрос.
Мой .htaccess выглядит так:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)?$ foo/$1 [QSA,L]
Только для документа-корнясодержит следующую папку / файлы:
/foo/bar/index.html
Теперь я ожидаю, что example.com/bar и example.com/bar/ просто покажут мне содержимое index.html.
Вместо example.com/bar/ покажите мне содержимое, как и ожидалось, но example.com/bar перенаправит меня с 301 на example.com/bar/foo/, а затем покажет содержимое.Я действительно не понимаю, почему в этом случае существует перенаправление 301.
Когда я помещаю что-то такое
RewriteCond %{REQUEST_URI} !^[^.]*/$
RewriteCond %{REQUEST_URI} !^[^.]*\.html$
RewriteCond %{REQUEST_URI} !^[^.]*\.php$
RewriteRule ^(.*)$ $1/ [QSA,L]
поверх этого правила, оно, кажется, работает, но это потребуетперечислить все используемые расширения файлов ...
Есть ли другой способ, которым я могу опустить перенаправление, папка "bar" никогда не должна быть видна внешнему пользователю.
Заранее спасибо!