.htaccess 不带文件夹的根重写

.htaccess Root Rewrite Without Folders

我花了无数小时搜索类似问题,但发现解决方案对我不起作用。我有一个带有 'id' GET 变量的 index.php 来动态加载页面,如 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= [L,QSA]

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

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

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

deny from all

本文摘自:

deny direct access to a folder and file by htaccess

这样说:

ErrorDocument 404 default
ErrorDocument 403 default

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ index.php?id= [L,QSA]