以下是目录大纲:
/
/css
/js
/admin
/config
/etc...
所以这就是我想要的:
/ <-- Mod re-write for this directory only, skip the rest
/css
/js
/admin
/config
/etc...
.htaccess文件:
# Turn rewrite engine on
RewriteEngine On
# Set the base path
RewriteBase /
# now the rewriting rules
RewriteRule ^([0-9A-Za-z]+)/?$ /query.php?id=$1 [L]
想跳过除根目录以外的所有目录,我该怎么做?
答案 0 :(得分:5)
另一种解决方案:将其中一条规则放在规则前面:
RewriteRule ^(css|js|admin|config|…)(/|$) - [L]
RewriteCond %{DOCUMENT_ROOT}$0 -d
RewriteRule ^[^/]+ - [L]
最后命名的规则适用于任何现有目录,但仅限于放置在服务器文档根目录中的.htaccess文件中。否则,您需要使用特定路径调整RewriteCond
表达式%{DOCUMENT_ROOT}$0
,例如%{DOCUMENT_ROOT}foo/bar/$0
。
答案 1 :(得分:0)
您是否尝试在“RewriteEngine Off”的每个子目录中放置.htaccess文件?
(也许这是serverfault.com的问题)