0

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

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

我想结束这个:

http://domain.com/blue-widget

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

提前致谢。

4

2 回答 2

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_-*]+)$

如果有人直接在 URL 中使用了错误字符,您可以将他们重定向到 404 页面。但是,如果您根据用户在表单中输入的内容调用用户的 URL,则可以在将错误字符发送到最终出现 404 页面并通知用户的 URL 之前检查错误字符的值。

于 2012-11-14T19:38:55.210 回答
0

重写规则则相反。所以链接将blue-widget被重写为search.php

RewriteEngine On
RewriteBase /

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

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

于 2012-11-14T19:28:16.407 回答