如何编写多个 mod-rewrite 规则?

如何编写多个 mod-rewrite 规则?

我总是使用下面的规则来管理 URL:

Options +FollowSymLinks  
RewriteEngine On  
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^.*$ ./urlredirect.php

通过这个,我可以轻松地用 php 检查用户正在尝试访问哪个页面。

现在我有一个网站,要求所有页面都使用 https。以下是基本解决方案:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

我现在的问题是无法同时运行两者。我对 mod-rewrite 和正则表达式了解甚少。

任何帮助将不胜感激。

答案1

来自 Apache 文档:HTTP 到 HTTPS https://wiki.apache.org/httpd/RewriteHTTPToHTTPS

因此,您需要先确定条件,然后再确定每个条件的规则。

Options +FollowSymLinks  
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d

RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^.*$ ./urlredirect.php

RewriteCond %{HTTPS} off

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

相关内容