如果它通过 htaccess 具有特定路径,则不要重定向到 www

Don't redirect to www if it has a certain path via htaccess

我的 .htacess 文件中的以下规则,用于我的 Drupal 网站,将所有非 www URL 重定向到 www 版本。 (例如:https://example.com -> https://www.example.com):

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

这很好用,但现在我想将 https://example.com/samltest/test 排除在重定向到 www 之外。我添加了以下内容:

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{REQUEST_URI} !/samltest/ [NC]
RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

但现在当我到达 https://example.com/samltest/test 时,它会重定向到 https://example.com/index.php。有人知道我做错了什么吗?

在你的 .htaccess 的顶部像这样:

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{THE_REQUEST} !\s/+samltest [NC]
RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

清除浏览器缓存后进行测试。