如果没有子域,则在URL中添加www,但在某些文件夹中添加例外

时间:2015-03-31 13:03:45

标签: regex apache .htaccess mod-rewrite url-rewriting

我想添加" www。"如果网址不包含" www。"之后" http://&#34 ;;但如果从某些特定文件夹请求任何文件,则不应添加。

这是我尝试过的。

RewriteEngine On
RewriteCond %{PATH_INFO} ^/exception_dir(.)*$
RewriteRule ^(.*)$ - [L]

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

使用此代码,目前," exception_dir"不被豁免重定向。我缺少什么?

如果要豁免多个目录,如何编写RewriteCond和/或RewriteRule?我是否需要分别为每个目录编写RewriteCond和RewriteRule?

1 个答案:

答案 0 :(得分:1)

你可以像这样做你的规则。在这个例子中,我也排除了2个目录。您可以执行1个或多个目录。

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