htaccess中的301重定向无法正常工作

时间:2015-11-20 11:42:45

标签: apache .htaccess redirect web-hosting

当我尝试将旧域重定向到我的新域时,我有问题。事情现在看起来像这样:

newdomain.pl< - 与博主帐户相关联 olddomain.pl< - 通过.htaccess文件连接到服务器(在连接到博客帐户之前)

我希望它的工作原理如下:olddomain.pl/subdomain - >重定向到newdomain.pl/subdomain。但无论我试图将哪个文件放入我的.htaccess文件中,它都会将我的旧网站重定向到newdomain(newdomain.pl)的主页面。我已经尝试过这样的代码:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^newdomain.pl[nc]
RewriteRule ^(.*)$ http://www.newdomain.pl/$1 [r=301,nc]

但它也会重定向到新域的主页面。只有当我把:

RedirectRule / http://www.newdomain.pl

它重定向到http://www.newdomain.plsubdomain< - 但是有斜线" /"新域名和子域之间缺少。不幸的是,当我写这篇文章时:

RedirectRule / http://www.newdomain.pl/

它重定向到主域名页面http://www.newdomain.pl,因此无效。我不知道什么是错的,我已经和那三天打架了。有没有人知道问题出在哪里?也许我买的托管有问题?

提前感谢您的回复 此致,帕维尔

3 个答案:

答案 0 :(得分:0)

在olddomain / .htaccess中尝试:

RedirectMatch ^/(.*)$ http://newdomain.com/$1

答案 1 :(得分:0)

尝试下一步:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^olddomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.olddomain.com$
RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R]

仅用于重定向查询而不直接重定向到域删除R标记。

答案 2 :(得分:0)

好的,我找到了解决方案。问题不在RewriteRule中包含“www”。当我改变它,它工作。我将下面的代码放在我身上:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.olddomain.pl$
RewriteRule ^(.*)$ http://www.newdomain.pl/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^olddomain.pl$
RewriteRule ^(.*)$ http://www.newdomain.pl/$1 [L,R=301]

谢谢大家!