重写搜索htaccess

时间:2012-11-14 19:26:17

标签: .htaccess rewrite

我正在寻找重写搜索链接的最佳方式。在我的网站上我有:

http://domain.com/search.php?keyword=blue+widget&Search=Search

我想最终得到这个:

http://domain.com/blue-widget

没有数据库,只是直接的html / css。

提前致谢。

2 个答案:

答案 0 :(得分:2)

我认为你想做更接近这件事的事情:

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ search.php?keyword=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ search.php?keyword=$1

Jason的回答仅适用于一个案例。

<强>更新

您可以在正则表达式部分添加更多字符以允许它们。例如,要允许*,请执行以下操作:

^([a-zA-Z0-9_-*]+)$

如果有人在网址中直接使用了不良字符,您可以将其重定向到404页面。但是,如果您根据用户在表单中键入的内容调用用户的URL,则可以在将错误字符发送到最终位于404页面并通知用户的URL之前检查该字符的值。

答案 1 :(得分:0)

重写规则的作用相反。因此链接将blue-widget,将被重写为search.php

RewriteEngine On
RewriteBase /

RewriteRule ^/blue-widget$ /search.php?keyword=blue+widget&Search=Search [L]

注意:如果您接受其他查询字符串参数,则需要使用QSA标记。