301重定向无法通过.htaccess工作

时间:2013-12-13 21:40:41

标签: .htaccess redirect

我发现这个小技巧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也与其他域发生冲突。

2 个答案:

答案 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规则。