Назад | Перейти на главную страницу

.htaccess условное применение правил и перенаправление ошибок

Я собираюсь запустить веб-приложение в производство, и мне было интересно кое-что о htaccess.

Вот мой htaccess (htaccess по умолчанию, предоставляемый Zend Framework):

SetEnv APPLICATION_ENV production

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

Я бы хотел добавить туда две вещи, сначала условие, основанное на APPLICATION_ENV для принудительного подключения SSL, но только в производство (другие возможные значения - разработка, тестирование и постановка). Еще я бы хотел настроить перенаправление на соответствующее действие при ошибке в контроллере ошибок на основе номера ошибки HTTP-запроса.

Я не ищу полного ответа, но по крайней мере там, где мне нужно начать, чтобы достичь своих целей.

Вот mod_rewrite шпаргалка и Отладка переменных среды HowTo для начала (приятное дополнение к довольно редкому Документы Apache mod_rewrite, ПО МОЕМУ МНЕНИЮ).

Ваше решение задачи production / https может выглядеть примерно так:

RewriteEngine on

RewriteCond %{ENV:APPLICATION_ENV} ^production$
RewriteCond %{HTTPS} !^on$
RewriteRule .* https://%{HTTP_HOST}/$1 [R=301,L,QSA]