如何将example.com/1更改为example.com/?id=1
我尝试使用Google搜索,但我只能找到example.com/?id=1到example.com/1的代码 我使用了一台发电机并得到了它,但它没有用
RewriteEngine On
RewriteRule ^\?get\=$ / [L]
谢谢, 艾萨克
答案 0 :(得分:0)
您无法在RewriteRule
语句中与查询字符串匹配,您需要使用RewriteCond
和%{QUERY_STRING}
变量:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^id=([0-9]+)$
RewriteRule ^$ /%1? [L]
规则的目标中需要?
来删除查询字符串。
答案 1 :(得分:0)
这取决于你想要重写的方式 - 即用户类型看到了什么,以及服务器做了什么。
如果您希望用户看到“http://example.com/1”,并且内部服务器提供“http://example.com/?id=1”,则以下内容应该有效:
RewriteRule ^([0-9]+)$ /?id=$1
但是,如果您希望用户看到“http://example.com/?id=1”,并且内部服务器提供“http://example.com/1”,则根据Jon Lin的回答,以下内容应该执行此操作:
RewriteCond %{QUERY_STRING} ^id=([0-9]+)$
RewriteRule ^$ /%1?