我希望创建一些重写规则。以下是我想要更改的网址类型。
http://www.mysite.com/profile/kwelch
更改为profile.php?username=kwelch
以下是我的相关内容:
RewriteRule ^profile/([^/.]+)/?$ profile.php?username=$1
我也希望重写所有年龄段,以便将.php
添加到任何页面。
RewriteRule ^(.*)$ $1.php [L, QSA]
我希望将这些工作放在一起,并添加更多与第一个逻辑相同的逻辑。
其他网址:
http://www.mysite.com/wof/vote
更改为vote.php?type=wof
http://www.mysite.com/wof/nominate
更改为nominate.php?type=nominate
如果可能的话,我想在网址中添加更多内容,例如用户ID。
我试图将我的两条线加在一起,它们分开工作,但页面错误并显示500错误。
我很感激帮助。
答案 0 :(得分:1)
最重要的是订单问题:Everything You Ever Wanted to Know about Mod_Rewrite Rules but Were Afraid to Ask?
您添加扩展程序的规则应该是第一个,然后稍加调整:
RewriteCond %{SCRIPT_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L,QSA]
这确保它只重写真正存在为.php脚本的请求。像(?<!\.php)
这样的RewriteRule中的断言可能具有相同的效果。 (更简单的是使用MultiViews
代替这个RewriteRule。)
最后,您可能会为每个进一步的规则添加[L]
。这可以防止重写引擎中的循环,我怀疑这是你未指定的错误。