1
通過的.htaccess 我要301重定向在URL參數 「pathval」 到 「路徑」,如:的.htaccess:301重定向 「INSTR」 URL參數路徑
index.php?a=1&b=2&pathval=a_text_string&c=3
到:
甚至更好:
index.php/a_text_string?a=1&b=2&c=3
如果「pathval」是唯一的URL參數,我發現了許多針對此重定向的解決方案。
,但我沒能得到它的價值時,有在QUERY_STRING參與其他參數和所有參數可以以任意順序和可以包含任何價值。
所以可以調用(1),其所定向可以是:
- 的index.php一個= 1 & B = 2 & C = 3(這裏就沒有重定向)
- 的index.php?pathval = a_text_string
- 的index.php?pathval = a_text_string &一個= 1 & b = 2 & C = 3
- 的index.php?一個= 1 & B = 2 & pathval = a_text_string & C = 3
- 的index.php?a = 1時& B = 2 & C = 3 & pathval = a_text_string
我會很高興,如果有人可以給我一個所有可想象的案例的一般解決方案。
(1):在我的例子中,爲了更好的可見性,其他參數a,b,c都是數字,但這不是一個規則。也可能包含字符串或甚至是空的。
謝謝你的快速解答。在我的測試中,它似乎工作得很好。我發現的唯一情況是它似乎在pathval後面留下了「&」:所以'index.php?a = 1&pathval = a_text_string&b = 2'會導致'index.php/a_text_string?a = 1 && b = 2'和'index.php?pathval = a_text_string&a = 1&b = 2'到'index.php/a_text_string?&a = 1&b = 2'。有沒有辦法去除這個呢? – Wooz
@Wooz使用'pathval =([^&] *)&?(\ S *)\ sHTTP' – hjpotter92
Thanks @ hjpotter92(added it to my answer) – anubhava