Palash Ahuja
Palash Ahuja

Reputation: 522

Rewriterule in .htaccess priority conflict

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).

Upvotes: 0

Views: 118

Answers (1)

deceze
deceze

Reputation: 522155

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.

Upvotes: 4

Related Questions