我是新手,但我有以下.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也没有重写。)
编辑:它需要忽略目录中的目录AND文件。 所以site.com/dir1和site.com/dir1/index.php都应该保持不变。
我该怎么做?
谢谢! 克里斯
答案 0 :(得分:2)
您只需要在第一个RewriteRule中添加几个条件:
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]
条件结束时的(/|$)
测试a / for另一个路径组件或请求结束($
)。如果您不是特定的,并且愿意忽略以(/|$)
或/dir1
开头的任何请求,您可以将/dir2
关闭。 /dir1a
。
第二个RewriteRule不需要任何新条件,因为它只匹配域根(^$
)。