如何从301重定向.htaccess中排除文件夹

时间:2015-06-03 22:12:24

标签: apache .htaccess mod-rewrite redirect

我在域goodereader.com上有一个301重定向,指向goodereader.com/blog/

我想设置一个论坛,并希望将/ forum /排除在301之后

这是我当前的.htaccess

Options +FollowSymlinks

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/forum/.*$

RewriteCond %{HTTP_HOST} ^www\.goodereader\.com$ [NC]

RewriteRule ^(.*)$ http://goodereader.com/$1 [L,R=301] 

RewriteCond %{HTTP_HOST} ^goodereader\.com$

RewriteRule (.*) http://goodereader.com/blog/$1 [R=301,L]

RewriteRule ^$ blog [L]

<IfModule mod_security.c>

SecFilterEngine Off

SecFilterScanPOST Off

</IfModule>

1 个答案:

答案 0 :(得分:1)

从评论中,您可以通过向第二条规则添加相同的条件来解决此问题。重写条件仅适用于立即以下规则,它们不会以任何方式全局化。

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/forum/.*$
RewriteCond %{HTTP_HOST} ^www\.goodereader\.com$ [NC]
RewriteRule ^(.*)$ http://goodereader.com/$1 [L,R=301] 

RewriteCond %{REQUEST_URI} !^/forum/.*$
RewriteCond %{HTTP_HOST} ^goodereader\.com$
RewriteRule (.*) http://goodereader.com/blog/$1 [R=301,L]

RewriteRule ^$ blog [L]

或使用传递:

RewriteEngine On

RewriteRule ^forum/ - [L]

RewriteCond %{HTTP_HOST} ^www\.goodereader\.com$ [NC]
RewriteRule ^(.*)$ http://goodereader.com/$1 [L,R=301] 

RewriteCond %{HTTP_HOST} ^goodereader\.com$
RewriteRule (.*) http://goodereader.com/blog/$1 [R=301,L]

RewriteRule ^$ blog [L]

确保清除浏览器的缓存。 301重定向是永久性的,浏览器将始终缓存它们。