通过我的.htaccess文件重写URL

时间:2013-07-09 08:54:57

标签: .htaccess

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

我尝试使用Google搜索,但我只能找到example.com/?id=1到example.com/1的代码 我使用了一台发电机并得到了它,但它没有用

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

谢谢, 艾萨克

2 个答案:

答案 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?