2015-01-16 196 views
0

我有一個重寫規則,變換:重寫包含'?'的網址

www.test.com/123456789 

www.test.com/task.php?name=123456789 

現在我找前做同樣的問號:

www.test.com/?123456789 

我試着:

RewriteRule ^\?([0-9]{10})$ task.php?name=$1 [L,NC,QSA] 

但它不起作用:沒有erros,但沒有重定向到task.php

我認爲'?'可能會導致問題..

感謝您的幫助。

+0

你使用了什麼'RewriteCond'?你已經在新的URL中使用了'$ 1',但是你還沒有用'(..)'' –

回答

0

您可以使用您的.htaccesswww.test.com/?123456789

RewriteEngine on 
RewriteCond %{QUERY_STRING} ^(\d+)$ 
RewriteRule ^$ task.php?name=%1 [L] 

順便說一句。 .. 123456789 - >[0-9]{9}而不是{10}
如果10是重要的,可以使用:

RewriteCond %{QUERY_STRING} ^(\d{10})$ 
+1

太棒了,效果很棒!謝謝 ! – Jeremy

+0

不客氣,很高興它的工作 – Croises

0

嘗試使用

RewriteRule ^\?([0-9]{10})$ task.php?name=$1 [L,NC,QSA] 

要捕捉你的電話號碼,並把它傳遞到新的URL

+0

'捕獲這個變量當然應該是^/\?([0-9] {10})$ task.php?name = $ 1 (即在字符串錨點開始後加'/') – symcbean

+0

^\?([0-9] {10})$和^/\?([0-9] {10})$不起作用。 – Jeremy