1

我正在尝试帮助一位朋友,她的客户在一次黑客攻击后将她的整个网站都下意识地引入了 SSL。这对她的 SEO 造成了严重破坏,导致重复页面被编入索引,导致旧链接不再指向正确 URL 的 PageRank 流失,等等。

无论如何,我在此处的另一篇似乎几乎符合要求的帖子之后对 .htaccess 进行了建模,但我想由这里的专家运行它以确保文件看起来正确。

基本上,除了少数 html 页面、一些 .php 页面和 .cgi 脚本之外,站点上的所有页面都需要从 HTTPS 重定向回 HTTP。你能告诉我是否有一个简单的规则将所有 php 页面设置为 HTTPS,然后在 HTTPS 和 .cgi 脚本后面设置一些额外的 HTML 页面?我真的很感激。这是我到目前为止所得到的:

IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*

<Limit GET POST>
order deny,allow
deny from all
allow from all
</Limit>
<Limit GET POST>
order deny,allow
deny from all
</Limit>
AuthName thedomain.com
AuthUserFile /home/thesitename/public_html/_vti_pvt/service.pwd
AuthGroupFile /home/thesitename/public_html/_vti_pvt/service.grp

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} page1.html
RewriteCond %{REQUEST_URI} page2.html
RewriteCond %{REQUEST_URI} page3.html
RewriteCond %{REQUEST_URI} page4.html
RewriteCond %{SCRIPT_FILENAME} \/page\.php [NC]
RewriteCond %{SCRIPT_FILENAME} \/page\.php [NC]
RewriteCond %{SCRIPT_FILENAME} \/page\.php [NC]
RewriteCond %{SCRIPT_FILENAME} \/page\.php [NC]
RewriteCond %{SCRIPT_FILENAME} \/page\.php [NC]
RewriteCond %{SCRIPT_FILENAME} \/page\.php [NC]
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301]

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !(auth|register|secure)
RewriteCond %{REQUEST_URI} !originalpage.php
RewriteCond %{REQUEST_URI} !cgi-script.cgi
RewriteRule ^(.*)$ http://%{SERVER_NAME}%{REQUEST_URI} [R=301]
4

1 回答 1

0

你能告诉我是否有一个简单的规则将所有 php 页面设置为 HTTPS,然后在 HTTPS 和 .cgi 脚本后面设置一些额外的 HTML 页面?

如果请求不是HTTPS ,此规则会将所有 php 脚本、4 个 html 页面和一个 cgi 脚本重定向到HTTPS

RewriteCond %{HTTPS} off
RewriteCond ${REQUEST_URI} \.php$ [OR]
RewriteCond %{REQUEST_URI} /page1.html$ [OR]
RewriteCond %{REQUEST_URI} /page2.html$ [OR]
RewriteCond %{REQUEST_URI} /page3.html$ [OR]
RewriteCond %{REQUEST_URI} /page4.html$ [OR]
RewriteCond %{REQUEST_URI} /cgi-script.cgi$ 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

此规则相反,将任何 HTTPS 而非 php 脚本、这 4 个 html 页面或 cgi 脚本重定向到 HTTP

RewriteCond %{HTTPS} on
RewriteCond ${REQUEST_URI} !\.php$
RewriteCond %{REQUEST_URI} !/page1.html$
RewriteCond %{REQUEST_URI} !/page2.html$
RewriteCond %{REQUEST_URI} !/page3.html$
RewriteCond %{REQUEST_URI} !/page4.html$
RewriteCond %{REQUEST_URI} !/cgi-script.cgi$ 
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
于 2012-10-23T07:15:20.420 回答