我正在尝试搜索查询。我有一个这样的表格:
<form action="index.php?<?=$_GET['search-input01']?>'" method="get">
<p class="nom t-center">
<label for="search-input01">All:</label>
<input type="text" size="75" name="q" id="search-input01" />
<input type="image" src="design/search-button.gif" class="search-submit" />
</p>
</form>
当您在地址栏中搜索/index.php?q=SEARCHTERMHERE&x=0&y=0
时。我想这样做:/search-SEARCHTERMHERE
怎么办?
答案 0 :(得分:3)
尝试这样的事情:
if (isset($_GET['q'])) {
header('Location: http://example.com/search-'.rawurlencode($_GET['q']));
exit;
}
这将重定向一个请求,该请求的网址查询包含q
参数,如/index.php?q=SEARCHTERMHERE&x=0&y=0
至/search-SEARCHTERMHERE
。
编辑您也可以仅使用mod_rewrite尝试此操作:
RewriteCond %{THE_REQUEST} ^GET\ /index\.php\?
RewriteCond %{QUERY_STRING} ^(([^&]*&+)*)q=([^&]*)&*(.*)
RewriteRule ^index\.php$ /search-%3?%1%4 [L,R]
RewriteRule ^search-(.+) index.php?q=$1 [L,QSA]
第一条规则是在外部重定向请求,第二条规则是内部重写。
答案 1 :(得分:2)
如果您想要与Gumbo建议的相反,即将/search-SEARCHTERM
重定向到/index.php?q=SEARCHTERM&x=0&y=0
,请在.htaccess文件中输入以下内容:
RewriteEngine On
RewriteRule ^search-([-_A-Za-z0-9]+)$ /index.php?q=$1&x=0&y=0 [L]