【发布时间】:2015-08-03 18:32:15
【问题描述】:
下面是我的 .htaccess 文件。我正在尝试排除应用于 /admin/ 文件夹的重写规则,但是在花了一个小时研究和尝试各种代码之后,我遇到了障碍。
Options -MultiViews
RewriteEngine On
RewriteBase /
# Exclude admin directory
RewriteRule ^(admin|admin)($|/) - [L]
RewriteRule ^privacy$ pages/privacy.php [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)/(.+)$ products.php?q=$3&rewrite=1&%{QUERY_STRING} [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)/$ search.php?q=bw:&categoryFilter=$1&genreFilter=$2%{QUERY_STRING} [L,B]
RewriteRule ^(.*)/$ pages/format.php?format=$1 [NC,L}
RewriteCond %{REQUEST_URI} !(/$|\.)
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
上面的代码会带来一个内部 500 错误,如果我删除它,我会将我重定向到格式的重写规则。我正在阅读需要将排除重写规则放在我要覆盖的规则之前。我不明白为什么它不起作用以及我错过了什么。
谢谢。
【问题讨论】:
标签: apache .htaccess mod-rewrite url-rewriting