代码有时会从.htaccess中消失

时间:2017-12-08 07:32:18

标签: wordpress .htaccess redirect mod-rewrite cpanel

大家好,我是新人,我有疑问。我有一个网站在谷歌搜索中索引了https和http版本,我在.htaccess中添加了301重定向从HTTPS到HTTP。有时候,随机地,301重定向从htaccess中消失了,我需要再次添加它。

这是我的htaccess 301重定向:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

过了几次,他们改成了这个

# 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

所以重定向已完全删除,谷歌索引再次https页面,我需要再次添加,为什么?我尝试了许多托管公司但没有改变。

2 个答案:

答案 0 :(得分:1)

我不会将HTTPS重定向到HTTP,反之亦然。如果您使用HTTPS,谷歌会给您一个小的排名提升(不要说保护您的用户和隐私是正确的做法)。

话虽如此:不要在WordPress标记之间放置任何东西,例如

# BEGIN WordPress
....
# END WordPress

WordPress会在下次写入.htaccess时覆盖它。

如果你把它放在那个街区之前,即

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

# 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

你应该没事,它应该保持不变。

答案 1 :(得分:0)

谢谢@janh,这是对的吗?

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule> 

# BEGIN WordPress
# END WordPress