0
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

4

1 回答 1

0

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

将最后一条规则更改为:

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

/site1/从正则表达式匹配中删除。还要在后面添加这个RewriteEngine On

RewriteBase /site1/
于 2012-08-31T18:08:59.780 回答