我想将查询参数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]
答案 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