#php #zend-framework #.htaccess
#php #zend-framework #.htaccess
Вопрос:
Я размещаю приложение, созданное с использованием zend framework. и у меня есть файл .htaccess в общей папке, чтобы перенаправлять все запросы для прохождения index.php . Это работает, но я не получаю параметры запроса в приложении. Почему это?
RewriteEngine on
Options FollowSymlinks
RewriteBase /
RewriteRule !.(js|ico|txt|gif|GIF|jpg|png|PNG|css|xml|JPG)$
index.php
Комментарии:
1. Как вы определяете, что вы не получаете параметры запроса? Можете ли вы опубликовать пример запроса и код, который, как вы ожидаете, будет работать?
Ответ №1:
Это не очень надежное решение. Что происходит, когда делается запрос к расширению файла, не включенному в ваш список?
Стандартные правила ZF 1.11 намного лучше
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Комментарии:
1. @Vir Что за сообщение об ошибке? Это будет в вашем журнале ошибок Apache.
2. Перезаписать движок с параметрами следующие ссылки перезаписать базу данных / перезаписать второй %{REQUEST_FILENAME} -s [ИЛИ] Перезаписать второй %{REQUEST_FILENAME} -l [ИЛИ] Перезаписать второй %{REQUEST_FILENAME} -d RewriteRule ^.*$ — [NC,L] RewriteRule ^.*$ index.php [NC,L] по-прежнему не получает параметр запроса ring
3. @Vir 1) Это не сообщение об ошибке, и 2) Обычно вам нужна веская причина для добавления
RewriteBase
. Зачем вы это добавляете?4. В противном случае я получаю запрошенный URL / index / auth не был найден на этом сервере. ошибка
Ответ №2:
При этом ВСЕ запросы, за исключением перечисленных типов файлов, будут переданы в index.php
RewriteCond %{REQUEST_FILENAME} !.(js|ico|txt|gif|GIF|jpg|png|PNG|css|xml|JPG)$
RewriteRule (.*)$ http://domain.com/index.php$1 [R=301,L]
Комментарии:
1. Кроме того, если вы хотите сократить свои URL-адреса, возможно, попробуйте сделать это:
RewriteRule ^(.*).htm$ /index.php?p=$1