.htaccess 根重写没有文件夹


.htaccess Root Rewrite Without Folders

我花了无数个小时寻找类似的问题,并找到了不适合我的解决方案。我有一个索引.php带有"id"GET变量,可以动态加载页面为 mydomain.com/[idVariableHere]。

我的 .htaccess 代码有效:

RewriteEngine On
RewriteBase /
RewriteRule ^(js|css|images)($|/) - [L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /index.php?id=$1 [L,QSA]

但是,它不会阻止显示/js/、/css/和/images/文件夹。它干扰了最后的重写规则,我不知道如何解决这个问题。

我的目标是保持 mydomain.com/[idVariableHere]对这些重要文件夹的限制。请帮忙。

这样说:

ErrorDocument 404 default
ErrorDocument 403 default
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ index.php?id=$1 [L,QSA]

据我了解,您需要一个 .htaccess 来阻止访问/js/、/css/和/images/文件夹。假设这些是在根中找到的。只需使用以下代码在每个文件夹中创建一个 .htaccess 文件:

deny from all

这取自:

拒绝 HTaccess 对文件夹和文件的直接访问