为什么我的 301 重定向不起作用?
why my 301 redirect is not work?
我有一个使用 wordpress 的博客。我更改了域名,所以我想对所有请求进行301重定向。
我的 .htaccess
文件:
# 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]
RewriteCond %{HTTP_HOST} ^old.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.old.com$
RewriteRule ^(.*)$ http://www.new.org/ [R=301,L]
</IfModule>
# END WordPress
缩进三行是为域名变更新增的
只能将old.com
和www.old.com
重定向到www.new.org
,不能将old.com/XXX
重定向到www.new.org/XXX
。
我认为原来的规则与新添加的规则冲突。但是不知道怎么改。
您永远不应修改 # BEGIN WordPress
和 # END WordPress
之间的任何内容。这只是 WordPress 禁忌之一。 WordPress 将覆盖这两个条目之间的任何内容,因此请将代码放在其上方或下方以确保不会删除任何内容。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.old.com$
RewriteRule ^(.*)$ http://www.new.org/ [R=301,L]
</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
我有一个使用 wordpress 的博客。我更改了域名,所以我想对所有请求进行301重定向。
我的 .htaccess
文件:
# 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]
RewriteCond %{HTTP_HOST} ^old.com$ [NC,OR] RewriteCond %{HTTP_HOST} ^www.old.com$ RewriteRule ^(.*)$ http://www.new.org/ [R=301,L]
</IfModule>
# END WordPress
缩进三行是为域名变更新增的
只能将old.com
和www.old.com
重定向到www.new.org
,不能将old.com/XXX
重定向到www.new.org/XXX
。
我认为原来的规则与新添加的规则冲突。但是不知道怎么改。
您永远不应修改 # BEGIN WordPress
和 # END WordPress
之间的任何内容。这只是 WordPress 禁忌之一。 WordPress 将覆盖这两个条目之间的任何内容,因此请将代码放在其上方或下方以确保不会删除任何内容。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.old.com$
RewriteRule ^(.*)$ http://www.new.org/ [R=301,L]
</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