.htaccess rewriterule不适用于https

时间:2015-10-21 20:49:59

标签: .htaccess mod-rewrite

这是我简单的.htaccess 我的目标只是添加重定向/常见问题的规则 - >我的HTTPS服务器上的faq.php。

# force ssl
RewriteCond    %{SERVER_PORT} ^80$
RewriteRule    ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R]
RewriteRule faq faq.php

我也尝试过:

RewriteRule faq faq.php
RewriteCond    %{SERVER_PORT} ^80$
RewriteRule    ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R]

如果我取消注释http-> https重定向规则,这样可以正常工作。

所以我尝试做的是:

  

- >如果是http,则重定向到https

     

- > if / faq然后重定向到faq.php

当我删除这些行

RewriteCond    %{SERVER_PORT} ^80$
RewriteRule    ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R]

faq-> faq.php有效,但我丢失了整个网站的http-> https重定向

1 个答案:

答案 0 :(得分:1)

每个RewriteCond至少应有一个RewriteRule

尝试

RewriteCond %{REQUEST_URI} ^/faq$
RewriteRule ^(.*)$ https://%{SERVER_NAME}/faq.php [R]

前两行之后(而不是第三行)。

编辑:

就我的意思而言,它是

RewriteCond    %{SERVER_PORT} ^80$
RewriteRule    ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R]
RewriteCond %{REQUEST_URI} ^/faq$
RewriteRule ^(.*)$ https://%{SERVER_NAME}/faq.php [R]

即两个RewriteCond指令。