我正在寻找重写搜索链接的最佳方式。在我的网站上我有:
http://domain.com/search.php?keyword=blue+widget&Search=Search
我想最终得到这个:
http://domain.com/blue-widget
没有数据库,只是直接的html / css。
提前致谢。
答案 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
标记。