将非 www 重定向到 www 页面,但它正在变得正常 url?

redirect non-www to www page but it is becaming a normal url?

我有这个 htaccess 规则:

RewriteRule ^category/([\w-]+)/?$ category.php?categoria=&id=1 [L,QSA,NC]


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

如果有人键入 mysite.com,它将重定向到 www。mysite.com

问题是,我有一个名为 category:

的页面

www.mysite.com/category/animals

如果用户键入时没有 www,它将重定向到 www,但 url 将是:

www.mysite.com/category.php?categoria=animals&id=1

我希望它重定向到 category/animals 而不是完整的 url (category.php?categoria=animals&id=1)... 怎么了?

而不是重写为使用 </code>,只需使用 <code>%{REQUEST_URI} 变量重定向回来:

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