.htaccess 重定向所有页面,除了少数页面重定向到特定页面

Posted

技术标签:

【中文标题】.htaccess 重定向所有页面,除了少数页面重定向到特定页面【英文标题】:.htaccess redirect all pages except a few pages redirecting with specific page 【发布时间】:2012-10-29 22:45:17 【问题描述】:

在这里搜索了很多帖子后,我没有发现它们略有不同,但我现在无法处理。请原谅我。这是我尝试过的帖子:

How to Redirect All urls to a new domain in apache, except one .htaccess rule redirect all pages except a few provided ones How to 301 redirect all pages from one domain to one single page on a different domain

这是我想要的:

www.olddomain.com 中的所有 url 永久重定向到 www.exampledomain.com/page, 并且在 www.olddomain.com 中有一个页面应该重定向到 www.exampledomain.com/pagesample

请注意:旧的 olddomain.com 除了索引和这个 htaccess 之外没有其他文件,而 www.exampledomain.com 是一个 wordpress 站点。

提前致谢

【问题讨论】:

【参考方案1】:

我对这句话有点疑惑:

www.olddomain.com 有一个页面会被重定向

我假设您的意思是 www.olddomain.com/page 重定向到 www.exampledomain.com/pagesample

RewriteEngine On

RewriteCond %HTTP_HOST .*olddomain\.com$
RewriteCond %REQUEST_URI /page/
RewriteRule ^ http://www.exampledomain.com/pagesample [L,R=301]

RewriteCond %HTTP_HOST .*olddomain\.com$
RewriteRule ^(.*) http://www.exampledomain.com/page/$1 [L,R=301]

【讨论】:

感谢您的快速回复。它有很大帮助,但第二个条件(RewriteCond %HTTP_HOST .*olddomain\.com$ RewriteRule ^/(.*) http://www.exampledomain.com/page/$1 [L,R=301])不起作用。但是当我删除 RewriteRule ^/(.*) http: 中的 斜杠 (/) -> RewriteRule ^(.*) http: 似乎工作正常。

以上是关于.htaccess 重定向所有页面,除了少数页面重定向到特定页面的主要内容,如果未能解决你的问题,请参考以下文章

具有排除条件的 301 重定向 (htaccess)

htaccess 重定向除了一个文件

htaccess 将所有页面重定向到单个页面

HTACCESS-将所有页面重定向到一个页面

.htaccess 301 将旧域上的所有页面重定向到新域上的单个页面

使用 .htaccess 将所有子域和子目录重定向到索引页面