htaccess重定向文件夹,除了1个子文件夹

时间:2014-04-04 09:50:28

标签: .htaccess redirect

关于我,我想将之后的所有内容重定向到www.mysite.nl/news/,然后重新发送到www.mysite.nl/news,www.mysite.nl/news/page除外(以及/页面之后的所有内容)

如何使用.htaccess进行此类操作?

编辑:我使用这些规则:

    <IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^news/page.*$ index.php [L]
RewriteRule ^news/.+ news/ [R=301,L]
</IfModule>

2 个答案:

答案 0 :(得分:1)

首先为要排除的子文件夹 - / news / page - 首先运行重写规则。

使用-表示&#34;不要重定向&#34;和[L] for&#34;最后一件事,如果你匹配&#34;。现在就停止。

或者,如果您希望它通过WordPress运行,请使用index.php

然后重定向启动/ news /

的网址

这样,排除的子文件夹将无法访问重定向规则。

所以:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^news/page.*$ index.php [L]
RewriteRule ^news/.+ news/ [R=301,L]
</IfModule>

使用.+表示一个或多个任意字符而不是.*,这意味着任何字符都没有,或者没有任何字符,以避免将新闻重定向到新闻/。

答案 1 :(得分:0)

这应该适合你:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/news/page.* [OR]
RewriteCond %{REQUEST_URI} !^/news
RewriteRule / http://mysite.nl/news [R=301,L]

这会将除/newsnews/page之外的所有内容重定向到/news文件夹。