У меня странная для меня проблема. Я занимаюсь разработкой приложения Zend Framework и имею следующую файловую структуру:
/
/application/
/public/
/public/.htaccess
/public/index.php
/public/js/
/public/style/
/public/profile/
/.htaccess
Мой домен указывает на folder /
Когда я ввожу адрес example.com/profile/
, он переходит в профиль контроллера, и это хорошо.
Когда я ввожу адрес example.com/profile
, сервер перенаправляет меня на:
example.com/public/profile/
Я хотел бы иметь решение, которое всякий раз, когда я запрашиваю:
example.com/profile/
или
example.com/profile
Будет отображена та же страница, но вторая версия дает мне перенаправление, и я не знаю почему.
Файл /.htaccess
:
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
Роль этого файла - перенаправлять весь трафик с / на / public, но без перенаправлений.
Файл /public/.htaccess
:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Кто-нибудь может мне помочь с этим? Спасибо.
Я исправил это. Вот решение, если у кого-то есть такая же проблема:
Чтобы это исправить, вы должны установить следующие параметры и отключить DirectorySlash
Options -Indexes FollowSymLinks
DirectorySlash Off
Теперь Apache не должен добавлять косые черты в конце URI, когда вы указываете на каталог.
Это также отключает перенаправление на uri с косой чертой.