.htaccess重写规则不起作用
我正在尝试这样做,如果访问以下地址链接.htaccess重写规则不起作用,.htaccess,.htaccess,我正在尝试这样做,如果访问以下地址链接 RewriteRule new/$ /search.php?category=1 RewriteRule new/\?(.+)$ /search.php?category=1&$1 然后会打开这个链接, http://onlineshop.com/new/ http://onlineshop.com/new/?price_max=30 不幸的是,它不是这样工作的。重写规则不会自然捕获查询字符串参数,您必须使用这种。htaccess: http:
RewriteRule new/$ /search.php?category=1
RewriteRule new/\?(.+)$ /search.php?category=1&$1
然后会打开这个链接,
http://onlineshop.com/new/
http://onlineshop.com/new/?price_max=30
不幸的是,它不是这样工作的。重写规则不会自然捕获查询字符串参数,您必须使用这种
。htaccess
:
http://onlineshop.com/new/search.php?category=1
http://onlineshop.com/new/search.php?category=1&price_max=30
您只需使用QSA标志将
/new
重定向到/search.php
,Apache将附加现有的查询字符串。像这样的东西对你有用:
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^new/$ /search.php?category=1&%1
基本的
RewriteRule
无法捕获GET参数中的任何内容,这就是第二条规则不起作用的原因。我的RewriteCond
用于将查询字符串放入变量(%1
)。
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteRule ^new/?$ /search.php?category=1 [L,QSA,NC]