URL使用参数通过htaccess重写

时间:2014-01-08 11:23:09

标签: .htaccess

我想将查询参数URL重写为不带查询参数。我的网址就像

http://www.example.com/pages.php?id=12&url=page-name&page=1
http://www.example.com/tour.php?id=12&url=tour-name&page=1
http://www.example.com/gallery.php?id=12&url=gallery-name&page=1

进入

http://www.example.com/pages/page-name/1
http://www.example.com/tour/tour-name/1
http://www.example.com/gallery/gallery-name/1

怎么做?

我到目前为止尝试过:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z]{2,2})/([a-zA-Z0-9_-]+)$ pages.php?id=$1&Url=$2 [QSA]

1 个答案:

答案 0 :(得分:0)

我想你想要更像这样的东西:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z]+)/([a-zA-Z0-9_-]+)(?:/([0-9]+))$ $1.php?url=$2&page=$3 [L,QSA]

你遇到的问题是看起来很漂亮的URL缺少“id”值,如果没有这个,你就不能用 id值重写。 Mod重写无法凭空消失,因此您需要将其包含在看起来更漂亮的URL中,或者依赖脚本来根据“url”参数提取页面:

http://www.domain.com/tour/12/tour-name/1