【问题标题】:htaccess mod rewrite NOThtaccess mod重写NOT
【发布时间】:2010-04-19 06:30:10
【问题描述】:
我在 apache 上重写 url 有一个小问题。
我希望它忽略 admin/ 文件夹的重写。
Options +FollowSymLinks
RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?cat=$1&name=$2 [L]
RewriteRule ^([^/]*)/$ /index.php?cat=$1 [L]
我自己尝试过,但我想不通。
谢谢。
【问题讨论】:
标签:
apache
.htaccess
mod-rewrite
【解决方案1】:
您可以使用RewriteCond 对RewriteRule 设置条件。除非所有条件都匹配,否则不会应用 RewriteRule。在您的情况下,我假设您的管理文件夹位于 http://yoursite.com/admin,因此这样的规则应该有效:
RewriteCond %{REQUEST_URI} !^/admin/*
把它放在你想阻止被应用的RewriteRule 之前。 RewriteCond 和 RewriteRule 指令的顺序很重要,因此请确定放置位置。
【解决方案2】:
我认为这可能更像是一个 ServerFault 问题,但有一个非常快速的答案:如果你放
RewriteRule ^admin/ - [L]
在您的其他重写规则之前,应该防止任何 URL 转换应用于以 admin/ 开头的 URL。