.htaccess将get变量重写为更优雅的东西

时间:2010-12-13 16:03:07

标签: .htaccess mod-rewrite

我刚刚写完一个新网站。这是一个简单的博客。我从读者那里得到的唯一建议是,我应该考虑将www.example.com/?page=3更改为www.example.com/1。

我应该如何编写此重写规则?

1 个答案:

答案 0 :(得分:0)

如果您的网址具有通用模式,并且外部使用的网址的一部分可以直接映射到内部使用的网址,同时保留唯一可识别的网址(就像您的网址可能做的那样),您可以使用mod_rewrite执行以下操作:< / p>

RewriteEngine on
RewriteRule ^[0-9]+$ /?page=$1 [L,QSA]

这会将/12345内部的请求重写为/?page=12345

否则,如果没有模式或映射不是微不足道的,您可能需要指定每种情况,如:

RewriteEngin on
RewriteRule ^foo$ /?page=1 [L,QSA]
RewriteRule ^bar$ /?page=2 [L,QSA]
RewriteRule ^baz$ /?page=3 [L,QSA]

您也可以将请求传递给PHP文件并在那里进行映射。