2011-11-10 93 views
0

我是新来这一点,但我有以下的.htaccess是正常工作:使用的.htaccess重定向所有请求而是两个

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

这重定向任何人site.com或www.site.com去到www.site.come/wordpress 但我有2个目录,我需要忽略此规则: www.site.com/dir1 www.site.com/dir2 这些需要被忽略(不重写即使他们没有www)

编辑: It nee ds忽略目录中的目录和文件。 so site.com/dir1 AND site.com/dir1/index.php都应该单独保留。

我该怎么做?

谢谢! 克里斯

回答

2

你只需要一对夫妇更多条件添加到您的第一个重写规则:在条件测试为任何一个结束

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^site\.com$ 
RewriteCond %{REQUEST_URI} !^/dir1(/|$) 
RewriteCond %{REQUEST_URI} !^/dir2(/|$) 
RewriteRule (.*) http://www.site.com/$1 [R=301,L] 
RewriteRule ^$ /wordpress [L,R=301] 

(/|$) /另一路径组件,或将结束请求($)。如果您不特别,并且愿意忽略以/dir1/dir2开头的任何请求,您可以将(/|$)关闭,例如, /dir1a

第二个RewriteRule不需要任何新的条件,因为它只匹配域根(^$)。

+0

正是我需要的,我真的很感谢解释! –

相关问题