重写 URL 包含 '?'

Rewriting URL containing a '?'

我有一个重写规则转换:

 www.test.com/123456789

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

现在我想对前面的问号做同样的事情 :

www.test.com/?123456789

我试过了:

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

但它不起作用:没有错误,但没有重定向到 task.php

我认为'?'可能会导致问题..

感谢您的帮助。

尝试使用

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

捕获您的号码并将其传递到新的 URL

您可以在 .htaccess 中将其用于 www.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})$