.htaccess将非www重定向到www,但一个目录不工作

时间:2014-08-27 12:06:33

标签: apache .htaccess mod-rewrite redirect

我想将所有非www重定向到www。指向/ cgi-bin / mail-dada /

内的请求除外

我无法想到为什么下面的代码也会将http://something.com/cgi-bin/mail-dada/mail.cgi/admin/重定向到www-prepended版本。

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.something\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/cgi-bin/mail-dada/ [NC]
RewriteRule (.*) http://www.something.com/$1 [R=301,L]

1 个答案:

答案 0 :(得分:2)

你问题中的规则应该有效。

我怀疑存在缓存问题(可能是旧规则?) 尝试使用其他浏览器或清除缓存,然后重试。

此外,如果您不想对您的域名进行硬编码,则可以这样做(如果您只有wwwnon-www个子域名)

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{REQUEST_URI} !^/cgi-bin/mail-dada/ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]