.htaccess 从 GET 变量重定向到 url 字符串

标签 .htaccess mod-rewrite query-string

我需要重定向

/search?keywords=somesearchterm


/search/somesearchterm

这看起来非常基本,但我一直在用头撞它一个小时。

感谢您花时间看这个。

最佳答案

您想使用 mod_rewrite 实现所谓的“301 重定向”。

RewriteEngine ON
RewriteRule ^/search\?keywords=somesearchterm$ /search/somesearchterm

添加正则表达式:
RewriteEngine ON
RewriteRule ^/search\?keywords=(.+) /search/$1 [R=301,L]
R=301表示提供 301 header 重定向,以便用户在浏览器中的 URL 发生变化,以及 L意味着如果此规则匹配,则不再处理任何重写规则。

如果你想做相反的事情——换句话说,如果有人去 mysite.com/search/asearchterm并且您希望 URL 保持不变,但是“在幕后”您希望它加载某个服务器脚本,请执行以下操作:
RewriteEngine ON
RewriteRule ^/search/(.+) /search.php\?keywords=$1 [L]

关于.htaccess 从 GET 变量重定向到 url 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3539522/

相关文章:

Apache mod_rewrite : force www only if not in localhost

facebook - 禁用 Facebook 移动浏览器检测?

linux - apache mod_rewrite 不适用于 .htaccess 文件

php - 如何从 URL 中删除这种类型的字符串 #VTkfzCGqqkow

php - 为什么 $_GET = index.php

.htaccess - 如何使用 mod_rewrite 将对 example.com 的请求重定向到 www.example.com?

elasticsearch - Elasticsearch 字符串过滤器-是否存在这样的选项?

elasticsearch - ElasticSearch-在query_string中使用 “now”范围返回0次匹配

apache - 用于维护页面重定向的 htaccess 代码

php - 拒绝访问 .htaccess 中的 .ini 文件是否安全?