douyong5825 2016-08-04 02:42
浏览 93
已采纳

在.htaccess优先级冲突中重写

Here are the rewriterules for .htaccess. But I am facing a problem. Here is my .htaccess file.

RewriteEngine On
RewriteBase /dashboard/sample_proj/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule t([\d]+)/ threads/$1/  [R=301]
RewriteRule f([\d]+)/ forums/$1/  [R=301,L]
RewriteRule t([\d]+)-([\d]+)/ threads/$1/page-$2 [R=301,L]
RewriteRule t([\d]+)/#post([\d]+) threads/$1/#post-$2 [R=301,L]

But this is a problem because there is a priority conflict between the urls. For Example https://www.url.com/t3550/#post44859 redirects to https://www.url.com/threads/3550/#post44859 but should instead should redirect to https://www.url.com/threads/3550/#post-44859 (this is because there is a conflict between the first and the fourth rule).

  • 写回答

1条回答 默认 最新

  • douyu0792 2016-08-04 02:46
    关注

    Fragments, the things after #, are not sent to the server. They're purely local in the browser, and only evaluated by the browser. A rule matching on # can never match, because the server will never get to see a URL fragment.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部