使用 ?在网址的第一个

时间:2016-09-18 09:31:20

标签: .htaccess

我想使用下面的链接并从category.php加载,但它不起作用

http://test.com/?search=x

htaccess的:

RewriteRule ^search$ category.php?search=$1 [QSA,NC]

3 个答案:

答案 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中。