Перезапись URL в проблеме htaccess - PullRequest
0 голосов
/ 29 апреля 2010

Я довольно новичок в этом мире перенаправлений htaccess. Я пытаюсь принудительно перенаправить все перенаправления в моем Zend MVC на мой https, но я получаю запрошенный URL не найдена ошибка при запросах, которые не отправляются через контроллер индекса

Пример

https://www.example.com/auth/register

дает запрошенный URL / auth / register not found error. Однако, если я удаляю правило перенаправления https, оно отлично работает через http. Если я настрою URL на

https://www.example.com/index.php/auth/register

работает нормально. URL

https://www.example.com/index/faq 

прекрасно работает, так как проходит через контроллер индекса.

Мой файл .htaccess выглядит следующим образом

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

<ifModule mod_gzip.c>
  mod_gzip_on Yes
  mod_gzip_dechunk Yes
  mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
  mod_gzip_item_include handler ^cgi-script$
  mod_gzip_item_include mime ^text/.*
  mod_gzip_item_include mime ^application/x-javascript.*
  mod_gzip_item_exclude mime ^image/.*
  mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

Что мне нужно настроить, чтобы получить URL

https://www.example.com/auth/register

работает

1 Ответ

0 голосов
/ 29 апреля 2010

Ваш код читается как «Если это соответствует файлу, ссылке или каталогу, то ничего не делайте и продолжайте». Вам нужно пропустить окончательное правило перезаписи в случае, если файл действительно существует:

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [S=1,NC,L]
RewriteRule ^.*$ index.php [NC,L]
...