mod_rewrite,我想重写:index.php?page =联系人联系

时间:2013-02-10 17:56:27

标签: apache mod-rewrite url-rewriting

我希望有人使用我的网站在浏览器地址栏中查看site.com/contact,而不是site.com/index.php?page=contact。

我是mod_rewrite的新手,到目前为止,我已经接受了这个规则。

我现在的代码是:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?page=$1

我将如何做到这一点?

编辑: 问题是我的联系页面的网址仍然是:​​site.com/index.php?page=contact。

1 个答案:

答案 0 :(得分:0)

最后一部分RewriteRule应如下所示:

RewriteRule ^(contact)/?$ index.php?page=$1

这意味着如果用户输入“mysite.com/contact”,他们实际上正在提供“mysite.com/index.php?page=contact”。

括号创建捕获组,转换为$1。对于每个连续的括号,捕获组变量递增 - $2$3,依此类推。