2013-07-09 35 views
1

如何更改example.com/1到example.com/?id=1URL通过我的.htaccess文件改写

我试着用搜索引擎,但我只能找到example.com/?id码= 1〜example.com/1 我用一台发电机,得到了这一点,但没有奏效

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

感谢, 艾萨克

+0

你的意思是你希望用户去“example.com/1”,它在内部去“ example.com/?id=1" ?或者相反呢? – icabod

回答

0

它的种类取决于您想要重写的方式 - 即,用户类型看到的内容以及服务器执行的操作。

如果希望用户看到“http://example.com/1”并在内部服务器提供“http://example.com/?id=1”,那么下面应该工作:

RewriteRule ^([0-9]+)$ /?id=$1 

但是,如果你想让用户看到“http://example.com/?id=1”,并在内部服务器提供“http://example.com/1”,那么下面,按照乔恩林的回答,应该这样做:

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

谢谢。这工作:3 – Isaac

0

你不能在RewriteRule对阵查询字符串声明,您需要使用RewriteCond%{QUERY_STRING}变量:

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

?需要在规则的目标去除查询字符串。

+0

这只是给了我一个404 – Isaac

+0

@Isaac当你请求'example.com/?id = 1'时,它会按照你的要求进行操作,并将其重写为'example.com/1'。现在,如果'example.com/1'不存在,那么当然你会得到一个404. –

+0

“如何更改example.com/1到example.com/?id=1” – Isaac