【问题标题】:redirect non-www to www page but it is becaming a normal url?将非 www 重定向到 www 页面,但它正在成为正常的 url?
【发布时间】:2016-12-20 23:02:42
【问题描述】:

我有这个 htaccess 规则:

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


RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [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

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

【问题讨论】:

    标签: .htaccess mod-rewrite url-redirection friendly-url


    【解决方案1】:

    不用重写以使用$1,只需使用%{REQUEST_URI} 变量重定向回来:

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

    【讨论】:

    • 还是一样的东西;/当我删除 www 时,它会变成 www...category.php?categoria=animals&id=1
    • @RickJoe 清除浏览器的缓存。另外,如果还有其他重写规则,以上规则应该首先出现在整个文件/列表中。
    • 哦,现在可以了!它在我的 htaccess 的末尾......这就是它不起作用的原因!非常感谢你,朋友!
    猜你喜欢
    • 2021-03-26
    • 1970-01-01
    • 2011-06-24
    • 2019-03-09
    • 2011-11-05
    • 2013-12-20
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多