我想将所有非 www 重定向到 www。除了指向/cgi-bin/mail-dada/内的请求
我不明白为什么下面的代码也重定向http://something.com/cgi-bin/mail-dada/mail.cgi/admin/到 www 前缀的版本。
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]
最佳答案
您问题中的规则应该有效。
我怀疑缓存有问题(也许是旧规则?)。
使用其他浏览器尝试或清除缓存并重试。
此外,如果您不想对域名进行硬编码,也可以这样做(如果您只有 www
或 非 www
子域)
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{REQUEST_URI} !^/cgi-bin/mail-dada/ [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
关于apache - .htaccess 将非 www 重定向到 www,但一个目录不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25526766/