重写 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})$
我有一个重写规则转换:
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})$