如果要将所有非www请求重定向到我的网站到www版本。我需要做的就是将以下代码添加到我的.htaccess文件中。
RewriteCond %{HTTP_HOST} ^mydomain\.com [NC]
RewriteCond %{REQUEST_URI} !^/subfolder
RewriteRule .* http://www.mydomain.com%{REQUEST_URI} [R=301,L]
问题在于,当我编写例如mydomain.com/products-1(mydomain.com/products?category=1的隐藏URL)时,即使在.htaccess文件中指定了所有参数,所有参数也都可见,我得到www.mydomain.com/products-1?category=1
的输出网址(重定向后)我该如何解决这个问题?上面的.htaccess代码有什么问题吗?
答案 0 :(得分:0)
尝试更改RewriteRule
:
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{REQUEST_URI} !^/subfolder
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
我更喜欢这个,因为它会捕获所有* .domain.com。如果这不是您想要的,请使用原始的HTTP_HOST规则。
如果我的逻辑今天早上有效,这条规则应该重写任何不匹配的请求:
www.example.com 并且不包含
/子文件夹
要 www.domain.com/URI