Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess重写规则不起作用_.htaccess - Fatal编程技术网

.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]