我想使用下面的链接并从category.php
加载,但它不起作用
http://test.com/?search=x
htaccess的:
RewriteRule ^search$ category.php?search=$1 [QSA,NC]
答案 0 :(得分:0)
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/test\.com$
RewriteCond %{QUERY_STRING} ^search=(.*)$
RewriteRule ^(.*)$ http://category.php?search=%1 [R=302,L]
您无法使用单个RewriteRule
的原因是无法直接重写查询参数。相反,上面的代码使用RewriteCond %{QUERY_STRING}
捕获查询字符串,然后在%1
中将其作为RewriteRule
提供。 RewriteCond %{REQUEST_URI}
确保代码仅评估test.com
域。
答案 1 :(得分:0)
试试这个,
RewriteEngine On
RewriteCond %{QUERY_STRING} ^search=(.*)$
RewriteRule ^(.*)$ category.php?search=%1 [QSA,NC,L]
答案 2 :(得分:0)
您可以使用这个简单的规则:
RewriteCond %{QUERY_STRING} ^search= [NC]
RewriteRule ^/?$ category.php [L]
^/?$
可确保我们仅匹配着陆页,而不是其他任何内容。QUERY_STRING
会自动附加到目标URI,因此无需捕获并附加到目标URI中。