用于重写 GET URL 的 .htaccess 规则

发布于 2024-09-12 08:09:05 字数 572 浏览 1 评论 0原文

在一个网站上,我有一个带有方法 get 的搜索表单。我想知道是否可以将该网址重写为一个更好看的网址。

例如,现在在我提交搜索表单后,我得到一个如下的网址:

http://www.mywebsite.com/ search.php?search_category=0&search_term=Jackson&submit_search=

如果我能让它看起来像这样,那就太好了:

http://www.mywebsite.com/search/Jackson/

谢谢。

On a website I have a search form with method get. I would like to know if I can rewrite that url to a better looking one.

For example, now after I submit the search form I get an url like this:

http://www.mywebsite.com/search.php?search_category=0&search_term=Jackson&submit_search=

It would be great if I could make it look like this:

http://www.mywebsite.com/search/Jackson/

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

久隐师 2024-09-19 08:09:05
Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteRule ^/search/(.*)/ /search.php?search_category=0&search_term=$1&submit_search= [L]
Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteRule ^/search/(.*)/ /search.php?search_category=0&search_term=$1&submit_search= [L]
无悔心 2024-09-19 08:09:05

您需要执行两次重定向,因为您可能希望后者也被识别为代表前者:

# /search.php?search_term=foo to /search/foo/
RewriteCond %{THE_REQUEST} ^GET\ /search\.php\?([^& ]*&)*search_term=([^& ]*)
RewriteRule ^/search\.php$ /search/%2/ [L,R=301]

# /search/foo/ to /search.php?search_term=foo
RewriteRule ^/search/([^/]+)/$ search.php?search_category=0&search_term=$1&submit_search [L]

You need to do two redirects as you probably want that the latter is also recognized to represent the former:

# /search.php?search_term=foo to /search/foo/
RewriteCond %{THE_REQUEST} ^GET\ /search\.php\?([^& ]*&)*search_term=([^& ]*)
RewriteRule ^/search\.php$ /search/%2/ [L,R=301]

# /search/foo/ to /search.php?search_term=foo
RewriteRule ^/search/([^/]+)/$ search.php?search_category=0&search_term=$1&submit_search [L]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文