我将使用哪个重定向规则来重定向olddomain下的所有页面。示例被重定向到newdomain.example?

该网站有一个完全不同的结构,所以我想在旧域下的每个页面都被重定向到新的域索引页。

我认为这将(在旧域。例如基本目录):

RewriteEngine On
RewriteRule ^(.*)$ http://newdomain.example/ [R=301]

但如果我导航到olddomain。我被重定向到newdomain.example/somepage。我期待重定向到newdomain。不带页后缀的示例。

我怎么才能不提最后一部分?


当前回答

最简单的方法就是:

重定向301 / http://www.newsite.com/

来源:https://github.com/phanan/htaccess redirect-an-entire-site

其他回答

我的名声不允许我评论一个答案,但我只是想指出,这里评分最高的答案有一个错误:

RewriteEngine on 
RewriteRule ^(.*)$ http://www.newdomain.com$1 [R=301,L]

1美元前面应该有斜杠,是吗

RewriteEngine on 
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]

我在我的Wordpress博客中用的是。htaccess。它将http://www.blah.example/asad, http://blah.example/asad, http://www.blah.example2/asad等转换为http://blah.example/asad 感谢所有其他的答案,我想出了这个。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^YOURDOMAIN\.example$ [NC]
RewriteRule ^(.*)$ https://YOURDOMAIN.example/$1 [R=301,L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

我尝试了user968421的答案和OP的解决方案,但浏览器弹出了结帐页面的安全错误。我不能告诉你确切的原因。

我们的主机(Site Ground)也搞不清楚。

最终的解决方案很接近,但对user968421的答案进行了轻微的调整(边注:与OP不同,我试图重定向到相应的页面,而不仅仅是到主页,所以我维护了从user968421的答案的反向引用[域名后的$1]):

RewriteEngine on
RewriteRule (.*) https://newdomain.com/$1 [R=301,L]

从Host Gator文章推荐的这个htaccess重定向生成器得到了调整(绝望的时间,绝望的措施,amiright?)

就像这样简单,这将不会携带从URL到新域的尾随查询。

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule .* https://www.newdomain.com/? [R=301,L]

如果你想从某个位置重定向到子域,你可以使用:

重定向301 /Old-Location/ http://subdomain.yourdomain.com