如何为查询字符串创建动态友好的URL?

时间:2017-12-29 12:10:21

标签: .htaccess

所以目前我的网址看起来像这样:

http://localhost/?v=register
http://localhost/?v=profile&u=thatgerhard

我希望上面看起来像这样:

http://localhost/register/ (without trailing /)
http://localhost/profile/thatgerhard/ (without trailing /)

我花了很多时间试图让它工作,即使它看起来应该是一个简单的修复。

这就是我的主题:

RewriteBase /
RewriteEngine On

RewriteRule ^((.)*)$ /?v=$1&p=$

我理想情况下这是动态的,所以如果你这样做?v = foo它会自动执行/ foo /而不添加" foo"到htaccess文件。

任何帮助或方向将不胜感激。 :)

1 个答案:

答案 0 :(得分:1)

您应该使用RewriteCond Directive RewriteCond反向引用%1反向引用与查询字符串参数v匹配,%2反向引用与查询字符串参数u匹配。 RewriteRule永久重定向请求并完全丢弃查询字符串。

RewriteCond %{QUERY_STRING} ^v=([^&]*)$ [NC]
RewriteRule ^/?$ /%1/? [R=301,L]

RewriteCond %{QUERY_STRING} ^v=([^&]*)&u=([^&]*)$ [NC]
RewriteRule ^/?$ /%1/%2/? [R=301,L]