htaccess url重写问题

时间:2010-12-25 20:28:36

标签: url .htaccess rewrite

我成功地重写了用户个人资料页面:

RewriteRule ^([a-z0-9] +)$ /profile/profile.php?u=$1 [NC] RewriteRule ^([a-z0-9] +)/ $ /profile/profile.php?u=$1 [NC]

所以site.com/username是site.com/profile.php?u=username

易。

但是现在......我希望标准页面像这样的文件夹......

site.com/login site.com/help

等...但网站认为这些是用户名...我已经添加了区分它们的规则,但它们似乎没有接受 - 即下面的那个不起作用..

RewriteRule ^ / login / twitter / $ /login/twitter/index.php [NC]

它认为登录是用户名。

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您应该在RewriteRule之前使用条件重写来跳过服务器上已存在的保留名称和文件及文件夹:

RewriteCond %{REQUEST_URI} !^/reserved1 
RewriteCond %{REQUEST_URI} !^/reserved2
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

REQUEST_URI是HTTP请求行中请求的资源。前两行表示URI不应以保留名称开头,应跳过/ reserved1和/ reserved2

REQUEST_FILENAME与SCRIPT_FILENAME CGI变量相同,并包含与请求匹配的文件或目录的完整本地文件系统路径。 最后两行意味着跳过服务器中已存在的实际文件和指令。