【发布时间】:2012-05-17 08:45:04
【问题描述】:
我正在尝试使用 htaccess 自动将所有对某些页面的请求定向到 https,将其他所有请求定向到 http://
这是我得到的代码来强制 ssl 在下面工作
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^va-homebuyers-guide https://domain.com/va-homebuyers-guide/ [R=301,L]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^va-purchase-request https://domain.com/va-purchase-request/ [R=301,L]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^va-streamline-refinance https://domain.com/va-streamline-refinance/ [R=301,L]
这是按预期工作并重定向到这些页面的 ssl 版本。然后我尝试添加以下内容以将其他所有内容重定向到 http:
RewriteCond %{SERVER_PORT} !^80
RewriteCond %{REQUEST_URI} !^va-homebuyers-guide$
RewriteCond %{REQUEST_URI} !^va-purchase-request$
RewriteCond %{REQUEST_URI} !^va-streamline-refinance$
RewriteRule ^(.*)$ http://domain.com/$1 [R,L]
此代码在转到 /va-purchase-request /va-homebuyers-guide 和 /va-streamline-refinance 时会导致重定向循环,并且根本不会重定向其他页面。
我完全坚持这一点,任何帮助将不胜感激!
编辑:
我在 wordpress 添加的 .htaccess 文件中也有此代码...它会干扰其他重定向吗?
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
#结束WordPress
【问题讨论】:
-
检查this question。 (您尝试做的可能部分不安全......)
标签: apache .htaccess mod-rewrite redirect ssl