使用Mod Rewrite更改URL结构

时间:2016-07-12 10:50:01

标签: php .htaccess mod-rewrite

我想通过htaccess对PHP网站使用mod重写。

网址结构如下:

example.com/ex.php?ez=DF004AE

必须成为:

example.com/ex/DF004AE.htm

为了做到这一点,要添加到我的.htaccess的正确脚本是什么?

3 个答案:

答案 0 :(得分:2)

使用此:

RewriteEngine On
RewriteRule ^ex/([^/]*)\.htm$ /ex.php?ez=$1 [L]

它将为您提供以下网址:

example.com/ex/DF004AE.htm

如果你的意思是.html(不是.htm)只需在RewriteRule中添加l。

答案 1 :(得分:2)

您可以使用以下规则:

RewriteEngine on
# Redirect from "/ex.php?ez=foobar" to "/ex/foobar.htm"
RewriteCond %{THE_REQUEST} /ex\.php\?ez=([^\s]+) [NC]
RewriteRule ^ /ex/%1.htm? [L,R]
####################
# internally map "/ex/foobar.htm" to "/ex.php?ez=foobar"
RewriteRule ^ex/([^.]+)\.htm$ /ex.php?ez=$1 [NC,L]    

这会将/ex.php?ez=foobar转换为/ex/foobar.htm

答案 2 :(得分:1)

RewriteEngine On
RewriteRule ^ex/([^/]*)\.html$ /ex.php?ez=$1 [R=301,NE,L]

如果您不希望地址栏反映此更改,请删除R = 301。 NE参数用于确保请求不会被转义。