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

时间:2012-10-22 08:59:31

标签: .htaccess

我尝试使用RewriteRule在文件夹中转换url参数。 有人可以帮帮我吗?。

原产地: search.php?term = red& cat = colors 目的地: / search / red / colors

1 个答案:

答案 0 :(得分:2)

this answer clarifies how URLs get rewritten and redirected的顶部。使用“转换”并不是很清楚,因为可能会发生两件完全不同的事情。

要将/search.php?term=red&cat=colors之类的网址更改为更好看的版本,您需要根据实际请求进行匹配并重定向浏览器:

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

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

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

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

相反,但仅在内部,以便在从search.php提供内容时,浏览器地址栏中的URL保持不变。你可以根据自己的需要做一个或者另一个,或者如果你需要在两个方向都这样做,你可以做到这两点。