【问题标题】:301 several (but not all) http to https301 几个(但不是全部)http 到 https
【发布时间】:2017-01-31 06:55:38
【问题描述】:

我有一个大约有 1000 个静态页面的网站,我想看看在我移动整个网站之前从 http 迁移到 https 将如何影响排名,例如 50 个页面。

我必须使用下面的第一个代码示例还是使用第二个就足够了?还是有更好的方法?

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/page-1.htm/?.*$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/page-2.htm/?.*$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/page-3.htm/?.*$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]


# OR IS THIS ENOUGH:


Redirect 301 /page-1.htm https://www.example.com/page-1.htm
Redirect 301 /page-2.htm https://www.example.com/page-2.htm
Redirect 301 /page-3.htm https://www.example.com/page-3.htm

【问题讨论】:

  • 第二个示例不起作用(除非您在单独的虚拟主机中拥有 HTTPS,并且您仅将其应用于非 HTTPS 主机)。第一个示例将不需要RewriteEngine On 的第二个或第三个实例。斯塔基恩的回应很棒

标签: .htaccess http redirect https


【解决方案1】:

您可以使用单个规则重定向此格式的多个页面page-n.htm

RewriteEngine on
RewriteCond %{HTTPS} off
 RewriteRule ^page-([0-9]+).htm$ https://%{HTTP_HOST}/page-$1.htm [NE,L,R=301]

【讨论】:

  • 好的,谢谢。很高兴知道。如果文件名的差异不止于此,您知道最好的方法是什么吗?假设它们是: blahblah.htm tjohoo.htm 不管什么.htm
  • 在这种情况下,您可以使用此模式:^(.+)\.htm$ 并将目标替换为 https://%{HTTP_HOST}/ $1.htm
  • 问这个我真的很尴尬,但是你认为你可以给我那三个“虚拟”文件名的完整代码吗?
【解决方案2】:

如果您明确希望在单独的 RewriteRule 语句中使用它:

RewriteEngine on

RewriteCond %{HTTPS} off
RewriteRule ^page-1\.htm$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301]

RewriteCond %{HTTPS} off
RewriteRule ^page-2\.htm$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301]

RewriteCond %{HTTPS} off
RewriteRule ^page-3\.htm$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 2019-09-23
    • 1970-01-01
    • 2023-03-03
    • 2018-12-26
    • 2019-08-13
    • 1970-01-01
    相关资源
    最近更新 更多