在移动到HTTPS后设置永久301重定向

时间:2019-01-01 作者:Abdullaziz Happy

我将我的站点从http移动到https,现在我想将用户重定向到新的url,但每次我都在尝试编辑。htaccess文件我收到一个错误

这是工作文件内容,其中xxxz是站点名称

# 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>

# END WordPress
RewriteCond %{HTTP_HOST} ^xxxz\\.qa$ [OR]
RewriteCond %{HTTP_HOST} ^www\\.xxxz\\.qa$
RewriteCond %{REQUEST_URI} !^/\\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\\.well-known/pki-validation/[A-F0-9]    {32}\\.txt(?:\\ Comodo\\ DCV)?$
RewriteRule ^/?$ "http\\:\\/\\/xxxz\\.com\\.qa" [R=301,L]
我试图编辑的是在阅读时在文件的顶部添加以下代码

RewriteEngine on
RewriteCond %{HTTP_HOST} ^xxxz.com.qa [NC,OR]
RewriteCond %{HTTP_HOST} ^www.xxxz.com.qa [NC]
RewriteRule ^(.*)$ https://www.xxxz.com.qa/$1 [L,R=301,NC]
但它不起作用所以你觉得呢

2 个回复
SO网友:MrWhite

RewriteCond %{HTTP_HOST} ^xxxz.com.qa [NC,OR]
RewriteCond %{HTTP_HOST} ^www.xxxz.com.qa [NC]
RewriteRule ^(.*)$ https://www.xxxz.com.qa/$1 [L,R=301,NC]
这将导致重定向循环,因为它将重复重定向https://www.xxxz.com.qa/<url>https://www.xxxz.com.qa/<url> 一次又一次。。。

如果要从HTTP重定向,则需要在重定向到HTTPS之前检查请求是否针对HTTP。例如:

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]
不需要NC 标志,因为您只是简单地匹配所有内容。

但是,这与文件末尾的现有指令冲突:

RewriteCond %{HTTP_HOST} ^xxxz\\.qa$ [OR]
RewriteCond %{HTTP_HOST} ^www\\.xxxz\\.qa$
RewriteCond %{REQUEST_URI} !^/\\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\\.well-known/pki-validation/[A-F0-9]    {32}\\.txt(?:\\ Comodo\\ DCV)?$
RewriteRule ^/?$ "http\\:\\/\\/xxxz\\.com\\.qa" [R=301,L]
这些指令可能应该删除。(幸运的是,他们可能什么也没做,因为他们在WordPress前端控制器之后。)

SO网友:Md. Ehsanul Haque Kanan

设置永久301重定向的最佳方法是编辑。具有所需重定向代码的htaccess。遵循以下步骤:

打开您的cPanel帐户File Manager 在下面Files 第节public_html 左侧边栏中的目录.htaccess 文件右键单击它。点击Edit.Edit.https://yoursite.com/old-page.htm, 新页面是https://yoursite.com/new-page.htm. 在这种情况下,重定向代码将是:

Redirect 301 /old-page.htm/ /new-page.htm
您可以找到有关这些步骤的更多信息right here.