使用htaccess删除参数但仍包含clean和parameter urls

时间:2014-11-10 08:28:54

标签: php regex .htaccess mod-rewrite redirect

我的菜单中有一个网址:

http://www.example.com/index.php?main_page=contact_us

我在.htaccess中使用以下内容将其变成'干净'的网址:

RewriteRule ^/?([^/d]+)/?$ index.php?main_page=$1 [L,QSA]

尽管这样可行,但是我可以使用 http://www.example.com/contact_us 来访问联系页面没有任何问题,它实际上并没有改变原始链接。

所以现在我想我需要改变php菜单中的链接以使用干净的URL或使用更好的htaccess重写规则来自动完成。我更喜欢后者,任何想法?

1 个答案:

答案 0 :(得分:1)

您可以插入此新规则来执行此重定向:

RewriteCond %{THE_REQUEST} \s/+index\.php\?main_page=([^\s&]+) [NC]
RewriteRule ^ /%1? [R=302,L,NE]

RewriteRule ^([^/.]+)/?$ index.php?main_page=$1 [L,QSA]