Я собираюсь запустить веб-приложение в производство, и мне было интересно кое-что о 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]