.htaccess 条件应用规则和错误重定向

.htaccess 条件应用规则和错误重定向

我正在考虑将一个 Web 应用程序投入生产,并对 htaccess 有一些疑问。

这是我的 htaccess(Zend Framework 提供的默认 htaccess):

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]

我想在其中添加两点,首先是基于应用程序环境强制 SSL 连接,但仅限于生产(其他可能的值是开发、测试和暂存)。我还想设置一个基于 HTTP 请求错误号的重定向到错误控制器中相应的错误操作。

我并不是在寻求完整的答案,而是至少想知道从哪里开始才能实现我的目标。

答案1

这是一个mod_rewrite 备忘单环境变量调试方法对于初学者来说(很好的补充了相当稀疏的Apache mod_rewrite 文档, 恕我直言)。

您对 production/https 任务的解决方案可能看起来像这样:

RewriteEngine on

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

相关内容