htaccess 中的 301 重定向不起作用
301 redirection in htaccess not working
我在尝试将旧域重定向到新域时遇到问题。现在的情况是这样的:
newdomain.pl <- 已连接到博主帐户
olddomain.pl <- 使用 .htaccess 文件连接到服务器(在连接到博客帐户之前)
我希望它像这样工作:olddomain.pl/subdomain -> redirect to newdomain.pl/subdomain。但是无论我尝试将什么放入我的 .htaccess 文件,它都会将我的旧站点重定向到 newdomain (newdomain.pl) 的主页。我试过这样的代码:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^newdomain.pl[nc]
RewriteRule ^(.*)$ http://www.newdomain.pl/ [r=301,nc]
但它也重定向到新域的主页。只有当我输入:
RedirectRule / http://www.newdomain.pl
它正在重定向到 http://www.newdomain.plsubdomain <- 但新域名和子域名之间缺少斜杠“/”。不幸的是,当我写这篇文章时:
RedirectRule / http://www.newdomain.pl/
它正在重定向到主域页面 http://www.newdomain.pl,因此无法正常工作。我不知道出了什么问题,我已经和那三天抗争了。有谁知道问题出在哪里?也许我买的主机有问题?
提前感谢您的回复
此致,帕维尔
在 olddomain/.htaccess 试试这个:
RedirectMatch ^/(.*)$ http://newdomain.com/
下一步试试:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^olddomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.olddomain.com$
RewriteRule ^(.*)$ http://newdomain.com/ [L,R]
仅重定向查询而不直接重定向到域删除 R
标志。
好的,我找到了解决方案。问题是 RewriteRule 中没有包含 "www"。当我改变它时,它起作用了。我将对我有用的代码放在下面:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.olddomain.pl$
RewriteRule ^(.*)$ http://www.newdomain.pl/ [L,R=301]
RewriteCond %{HTTP_HOST} ^olddomain.pl$
RewriteRule ^(.*)$ http://www.newdomain.pl/ [L,R=301]
谢谢大家!
我在尝试将旧域重定向到新域时遇到问题。现在的情况是这样的:
newdomain.pl <- 已连接到博主帐户
olddomain.pl <- 使用 .htaccess 文件连接到服务器(在连接到博客帐户之前)
我希望它像这样工作:olddomain.pl/subdomain -> redirect to newdomain.pl/subdomain。但是无论我尝试将什么放入我的 .htaccess 文件,它都会将我的旧站点重定向到 newdomain (newdomain.pl) 的主页。我试过这样的代码:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^newdomain.pl[nc]
RewriteRule ^(.*)$ http://www.newdomain.pl/ [r=301,nc]
但它也重定向到新域的主页。只有当我输入:
RedirectRule / http://www.newdomain.pl
它正在重定向到 http://www.newdomain.plsubdomain <- 但新域名和子域名之间缺少斜杠“/”。不幸的是,当我写这篇文章时:
RedirectRule / http://www.newdomain.pl/
它正在重定向到主域页面 http://www.newdomain.pl,因此无法正常工作。我不知道出了什么问题,我已经和那三天抗争了。有谁知道问题出在哪里?也许我买的主机有问题?
提前感谢您的回复
此致,帕维尔
在 olddomain/.htaccess 试试这个:
RedirectMatch ^/(.*)$ http://newdomain.com/
下一步试试:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^olddomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.olddomain.com$
RewriteRule ^(.*)$ http://newdomain.com/ [L,R]
仅重定向查询而不直接重定向到域删除 R
标志。
好的,我找到了解决方案。问题是 RewriteRule 中没有包含 "www"。当我改变它时,它起作用了。我将对我有用的代码放在下面:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.olddomain.pl$
RewriteRule ^(.*)$ http://www.newdomain.pl/ [L,R=301]
RewriteCond %{HTTP_HOST} ^olddomain.pl$
RewriteRule ^(.*)$ http://www.newdomain.pl/ [L,R=301]
谢谢大家!