Apache .htaccess规则冲突

时间:2011-10-07 06:00:07

标签: apache .htaccess

我正在开发一个人们可以创建个人资料的网络应用。他们的个人资料存储在:app / user / UserName。我希望URL是这样的:app / UserName但不能,因为我已经设置了url:app / CategoryName / StoryName,其中有很多类别,如技术,时尚等。这是我的htaccess内容:

Options +FollowSymLinks
RewriteEngine on
ErrorDocument 404 /ef12/error/404.html
RewriteRule user/(.*)/ u.php?name=$1
RewriteRule user/(.*) u.php?name=$1
RewriteRule (.*)/(.*)/ scoop.php?cat=$1&title=$2
RewriteRule (.*)/(.*) scoop.php?cat=$1&title=$2
RewriteRule (.*)/ scoop.php?cat=$1
RewriteRule (.*) scoop.php?cat=$1

我希望用户的个人资料显示为:

应用程序/ AbhishekBiswal

和故事如下:

应用程序/技术/史蒂夫的作业

我知道这是可能的:示例> Twitter:twitter.com/Abhishek_Biswal和twitter.com/about,其中前者是个人资料,后者是关于Twitter的页面。

是的,我还有Login和SignUp(http://app/Login)等目录,它们也与规则冲突,也就是说,当我尝试访问Login目录时,服务器假定Login为UserName(当我已将配置文件网址设置为htaccess中的http://app/UserName,并显示“无配置文件”错误。

谢谢。

1 个答案:

答案 0 :(得分:2)

在规则之前添加这些行。如果存在与URL匹配的文件或目录,它们会阻止规则生效:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d