1

我正在尝试将一些选择页面重定向到 HTTPS。我找到了许多示例,但它们似乎不适用于我当前的 htaccess 文件中的内容。我目前的 htaccess 有

RewriteEngine On
Options +FollowSymLinks
# Redirect all other domains to the primary
RewriteCond %{HTTP_HOST} ^(www\.?|)(domain1\.com|domain2\.com|domain3\.com|\.co)$
RewriteRule ^(.*)$ http://www.prefferreddomain.com/$1 [R=301,L]
# Error Documents
ErrorDocument 401 /errors/401.php
ErrorDocument 403 /errors/403.php
ErrorDocument 404 /errors/404.php
#Cache Settings, etc. after this

我目前正在我的 SEO 的 htaccess 文件中执行此操作,因为我们拥有多个域名(20+)。无论如何,我希望将 3 个页面重定向到 HTTPS,但我尝试过的所有示例都没有按预期工作。我不确定是否应该将它们放在当前位于 htaccess 文件中的重定向之前或之后。

应该重定向到 https 的页面是 logon.php 和 chat.php。所以我尝试了

RewriteEngine On
Options +FollowSymLinks

RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} (logon.php)
RewriteRule (.*) https://www.preferreddomain.com%{REQUEST_URI} 

RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} (chats.php)
RewriteRule (.*) https://www.preferreddomain.com%{REQUEST_URI}

# Redirect all other domains to the primary
RewriteCond %{HTTP_HOST} ^(www\.?|)(domain1\.com|domain2\.com|domain3\.com|\.co)$
RewriteRule ^(.*)$ http://www.prefferreddomain.com/$1 [R=301,L]
# Error Documents
ErrorDocument 401 /errors/401.php
ErrorDocument 403 /errors/403.php
ErrorDocument 404 /errors/404.php
#Cache Settings, etc. after this

但这没有用。有没有人有任何指针。

4

2 回答 2

0

添加[R=301,L]到每个 https:// 规则的末尾。如果没有L,则该规则将 URI 标记为重定向,但 URI 将继续通过重写引擎的其余部分,并且也将匹配最后一条规则。

于 2012-08-24T18:22:54.813 回答
0

事实证明它不起作用的原因是因为我们的主机网络解决方案正在使用 SSL 代理,因此任何检测到协议的服务器端都将不起作用,并且通常会导致循环。

于 2012-08-28T20:18:26.593 回答