1

如何将 example.com/1 更改为 example.com/?id=1

我试过谷歌搜索,但我只能找到 example.com/?id=1 到 example.com/1 的代码我使用了一个生成器并得到了这个,但它没有用

    RewriteEngine On
    RewriteRule ^\?get\=$ / [L]

谢谢,艾萨克

4

2 回答 2

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?
于 2013-07-09T09:06:19.990 回答
0

您无法匹配RewriteRule语句中的查询字符串,您需要使用 aRewriteCond%{QUERY_STRING}变量:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^id=([0-9]+)$
RewriteRule ^$ /%1? [L]

?规则的目标中需要删除查询字符串。

于 2013-07-09T08:58:47.520 回答