我怎样才能改写 www.mysite.com/login访问www.mysite.com/login.php 以及其他几个网站页面,如“搜索”和“注册”等?
我尝试用
做到这一点RewriteRule ^(.+). $1.php [R,NC]
但是却得到了一个非常讨厌的重定向循环。 :/
我也想改写 www.mysite.com/Elvis访问www.mysite.com/profile?username=Elvis 我肯定会与第一条规则发生冲突。
这可能吗?
答案 0 :(得分:0)
这是应该有用的东西:
# if the URL doesn't end with "php":
RewriteCond %{REQUEST_URI} !(.+)\.php$
# then whatever it is, add php at the end:
RewriteRule (.+) $1.php [NC]
您的错误是:
^
和 .
无用,(可能)会产生错误。如果这不起作用,它可能非常接近你想要的。
请尝试使用RewriteLog
指令:它可以帮助您找出此类问题:
# Trace:
# (!) file gets big quickly, remove in prod environments:
RewriteLog "/web/logs/mywebsite.rewrite.log"
RewriteLogLevel 9
RewriteEngine On
我最喜欢检查regexp的工具:
http://www.quanetic.com/Regex(别忘了选择ereg(POSIX)而不是preg(PCRE)!)