我們正在努力爲我們的論壇遷移到另一個平臺,我們也遇到了這具有查詢在他們的鏈接,如htaccess的重寫規則
http://forum.test/threads/119312-Warnight-CS-GO?p=2306618&viewfull=1#post2306618
其具有指向http://forum.test/threads/warnight-cs-go.119312/#post-2306618
所以原始鏈接的邏輯結構是:
http://{forum_base_url}/threads/{thread-id}-{thread-permalink}?p={post-id}&viewfull={post-number-in-thread}#post{post-id}
雖然新的一個是:
http://{forum_base_url}/threads/{thread-permalink}.{thread-id}/#post-{post-id}
所以對於重寫工作,我們需要「拉」三件事出原始鏈接:線程ID的永久鏈接,和後ID。前兩個不是問題,這是第三個不想合作的問題。
在網上淘了可能的解決方案後,我們提出了:
RewriteCond %{QUERY_STRING} ^p=(\d+)&viewfull=(\d+)#post(\d+)$
RewriteRule ^threads/([0-9]+)-(.*)$ /threads/$2\.$1/#post-%1? [R=301,NC,L]
但不幸的是,重寫不起作用。
什麼引發我們送行關於重寫是有查詢和鏈接本身沒有指定PHP文件的多個變量,所以我們不能只使用該解決方案提供了這裏:https://stackoverflow.com/a/2252242/1288397
任何提示如何克服這個特殊的障礙?
URL的哈希部分不是查詢字符串的一部分。 (並且它甚至不向服務器發送。) – CBroe