我有以下网址
www.localhost.com/profile.php?username=first.last
我想将上面的网址永久重定向到使用.htaaccess文件。 (apache服务器)
www.localhost.com/first.last
还请考虑其他网址很少,但我不想触摸它们。比如
www.localhost.com/message.php?id=12
www.localhost.com/editprofile.php?editname=first.last
www.localhost.com/uploadphoto.php?username=first.last
任何人都可以帮助我。 提前谢谢你。
答案 0 :(得分:1)
您可以尝试使用RewriteCond
处理查询字符串,并将捕获的匹配项传递给RewriteRule
。您必须排除重写规则的任何.php
脚本,否则会导致其他网址出现问题。
不要忘记在RewriteRule
之后添加[QSA]标记,否则它将不会添加查询字符串参数。
也许做这样的事情:
RewriteEngine on
#serve any existing php scripts as usual
RewriteRule ^([a-zA-Z0-9]+\.php) - [L]
#and now handle your specific stuff:
RewriteCond %{QUERY_STRING} ^([a-zA-Z0-9]+\./[a-zA-Z0-9]+)$
RewriteRule ^(%1)$ /profile.php?username=%1 [QSA]
我不测试它,但它应该是一个良好的开端。您可以在here的文档中阅读有关如何编写和处理特定重写用例的一些好东西mod_rewrite httpd 2.2。