PHP - mod_rewrite清除网址和查询字符串

时间:2012-08-31 17:51:06

标签: php .htaccess mod-rewrite

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.+)
RewriteCond %{HTTPS}s/%1 ^(on(s)|offs)/(.+)
RewriteRule ^ http%2://%3%{REQUEST_URI}/site1 [L,R=301]

RewriteRule ^/site1/catalogue/(\w+)/([0-9]+)$ catalogue.php?category=$1&product_id=$2 [QSA,L]

我遇到了一些mod_rewrites的问题。我正在努力完成三件事:

1)删除www。来自网址

2)删除.php扩展名

3)是否有涉及$ _GET变量的干净网址(查询字符串?)

例如,我想要这个网址:

http://www.domain.com/site1/catalogue.php?category=kitchen&product_id=2

变成了这个:

http://www.domain.com/site1/catalogue/kitchen/2

1 个答案:

答案 0 :(得分:0)

  

是的,我的.htaccess文件位于site1文件夹/目录中。输入清理的URL似乎没有正确地重定向我。我得到了404s。我假设问题是我对查询字符串的最后一次重写规则。

将最后一条规则更改为:

RewriteRule ^catalogue/(\w+)/([0-9]+)$ catalogue.php?category=$1&product_id=$2 [QSA,L]

从正则表达式匹配中删除/site1/。也可以在RewriteEngine On

之后添加
RewriteBase /site1/