我发现这个小技巧http://css-tricks.com/snippets/htaccess/301-redirects/将我的旧Wordpress域重定向到包含路径的新域。我在我的本地副本上运行测试,一切正常。当我登录旧域的cpanel并尝试它虽然它给我一些不好的结果。
以下是我用于本地和实时拷贝的代码......
# 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
Redirect 301 / http://newsite.com/
结果如下http://www.cuponsmercado.com.br/lojas/。它看起来是在调用新域名(基于左下角的Google Chrome状态),但它只是显示了旧域名,其中包含损坏的HTML / CSS。任何想法?
更新 当我以为我正在编辑时,我错误地编辑了同一个域。两者都托管在同一主机帐户上,但显示单独的cPanel URL导致混淆。有一个机会.htaccess也与其他域发生冲突。
答案 0 :(得分:1)
将此作为DOCUMENT_ROOT/.htaccess
文件中的第一条规则:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?cuponsmercado\.com\.br$ [NC]
RewriteRule ^ http://www.cuponsdemercado.com.br%{REQUEST_URI} [L,NE,R=302]
答案 1 :(得分:0)
你需要坚持使用mod_rewrite,因为请求会同时应用两个模块(Redirect
是mod_alias):
在# BEGIN WordPress
部分上方添加:
RewriteRule ^(.*)$ http://newsite.com/$1 [L,R=301]
此外,如果您只是将网站从一台服务器移动到另一台服务器,则可以使用mod_alias并删除所有旧的wordpress规则。