所以目前我的网址看起来像这样:
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文件。
任何帮助或方向将不胜感激。 :)
答案 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]