可能重复:
通过国防部重写,使邮政标题作为url中的slu </s>
我有一个url:
http://www.example.com/details.php?var=100&p=99
我想重写它使用国防部重写
http://www.example.com/100/99
我正在使用以下rewite_rule:
RewriteRule ^([0-9]+)/([0-9]+) $ http://www.example.com/details.php?var=$1&p=$2 [L]
但它不工作。 如果我inputhttp://www.example.com/100/99则会redirect到http://www.example.com/details.php?var=100&p=99url。 请帮我解决这个问题。 谢谢
你的方法中的问题是
^([1-9]+) URI以/开头 – 告诉规则检查一些没有/ 1-9不会让你有零。 尝试这个:
RewriteRule ^/([0-9]*)/([0-9]*) http://www.example.com/details.php?var=$1&p=$2 [L]
你可以在这里validation你的重写规则 – http://martinmelin.se/rewrite-rule-tester/
如果是关于*redirect* ,则从目标部分删除http://...前缀。
RewriteRule ^(\d+)/(\d+)$ details.php?var=$1&p=$2 [L]
做这个第一条规则。
另外请记住,你必须调整你的应用程序,以实际生成/ 123/456url。 重写小程序只适用于传入的请求,它不会改变页面。
在正则expression式中包含0:
RewriteRule ^/([0-9]+)/([0-9]+)/?$ http://www.example.com/details.php?var=$1&p=$2 [L]
相反的是:
RewriteCond %{QUERY_STRING} ^var=([0-9]+)\&p=([0-9]+)$ RewriteRule ^details\.php$ http://www.example.com/%1/%2 [R=301,L]