如何将 example.com/1 更改为 example.com/?id=1
我试过谷歌搜索,但我只能找到 example.com/?id=1 到 example.com/1 的代码我使用了一个生成器并得到了这个,但它没有用
RewriteEngine On
RewriteRule ^\?get\=$ / [L]
谢谢,艾萨克
如何将 example.com/1 更改为 example.com/?id=1
我试过谷歌搜索,但我只能找到 example.com/?id=1 到 example.com/1 的代码我使用了一个生成器并得到了这个,但它没有用
RewriteEngine On
RewriteRule ^\?get\=$ / [L]
谢谢,艾萨克
这取决于您想要进行重写的方式——即,用户类型看到什么,以及服务器做什么。
如果您希望用户看到“ 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?
您无法匹配RewriteRule
语句中的查询字符串,您需要使用 aRewriteCond
和%{QUERY_STRING}
变量:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^id=([0-9]+)$
RewriteRule ^$ /%1? [L]
?
规则的目标中需要删除查询字符串。