.htaccess 转换文件夹中的 url 参数

2024-04-15

我尝试使用 RewriteRule 转换文件夹中的 url 参数。 任何人都可以帮助我吗?

Origin:search.php?term=red&cat=colors目的地:/搜索/红色/颜色


的顶部部分这个答案阐明了 URL 是如何获取的重写 and 重定向 https://stackoverflow.com/a/11711948/851273。使用“convert”并不是很清楚,因为可能会发生两种完全不同的事情。

要更改 URL,例如/search.php?term=red&cat=colors为了获得更好看的版本,您需要匹配实际请求并重定向浏览器:

RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ /search\.php\?term=([^&]+)&cat=([^&\ ]+)
RewriteRule ^ /search/%2/%3/? [L,R=301]

当有人在浏览器中输入 URL 时,就会出现这样的情况:http://mysite.com/search.php?term=red&cat=colors,他们被外部重定向到http://mysite.com/search/red/colors,更改地址栏中的 URL。

然后为了在内部重写看起来更漂亮的 URL 并将其路由回 php 脚本:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?search/([^/]+)/([^/]+)/?$ /search.php?term=$1&cat=$2 [L]

这会执行相反的操作,但仅在内部进行,以便在提供内容时浏览器地址栏中的 URL 保持不变search.php。您可以根据您的需要选择其中之一,或者如果您需要在两个方向上都进行此操作,则可以同时执行两者。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.htaccess 转换文件夹中的 url 参数 的相关文章

随机推荐