我正在寻找重写搜索链接的最佳方法。在我的网站上,我有:
http://domain.com/search.php?keyword=blue+widget&Search=Search
我想结束这个:
http://domain.com/blue-widget
没有数据库,只有直接的 html/css。
提前致谢。
我想你想做一些更接近这个的事情:
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_-*]+)$
如果有人直接在 URL 中使用了错误字符,您可以将他们重定向到 404 页面。但是,如果您根据用户在表单中输入的内容调用用户的 URL,则可以在将错误字符发送到最终出现 404 页面并通知用户的 URL 之前检查错误字符的值。
重写规则则相反。所以链接将blue-widget
被重写为search.php
RewriteEngine On
RewriteBase /
RewriteRule ^/blue-widget$ /search.php?keyword=blue+widget&Search=Search [L]
注意:如果您接受其他查询字符串参数,则需要使用该QSA
标志。