使用mod_rewrite将基本$ _GET变量重写为友好URL

时间:2012-02-08 17:44:58

标签: .htaccess mod-rewrite get

我知道类似的问题很常见。我甚至不知道从哪里开始使用/和#重写规则。我不知道如何改进其他人的解决方案。在我的情况下:

我在index.php文件中使用了基本的get,看起来像

http://www.example.com/index.php?page=about

我想将其重写为

http://www.example.com/about

我知道这是相当简单的重写,但它只是一种完全不同的语言,我尝试过并且无法理解。感谢

2 个答案:

答案 0 :(得分:2)

试试这个:

RewriteEngine on
RewriteRule ^([^/\.]+)/?$ /index.php?page=$1 [L]

答案 1 :(得分:1)

甚至:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME}  -f
RewriteRule ^(?!index.php\b).*   index.php?page=$0 [L,QSA]

注意:

  • 您应始终在RewriteBase文件中设置.htaccess
  • 我对此进行了概括,以便index.php选择任何未映射到真实文件的字符串
  • (?!index.php\b)是一个正则表达式,表示“但与index.php不匹配”
  • 如果您的请求可以包含请求参数,则需要[QSA]标志。这合并了他们。