我有以下文件夹结构,其中我有一个Web应用程序运行:
/root/public/index.php
我在/root
中有一个.htaccess
,它将所有请求重定向到/root/public
,但我也可以通过在请求中预先添加/public
目录来访问我的内容,例如在我可以这样做的时候
www.example.com/public/index.php
www.example.com/index.php
两者都指向相同的资源,但我只希望人们通过转到来访问资源,如果他们尝试直接访问/public
目录,则返回错误
www.example.com/index.php
我现在的.htaccesss
看起来像这样:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/ [L]
</IfModule>
我在这里错过了什么,以阻止通过URL访问我的/public
文件夹?
我试过应用WordPress使用的一些重写规则',但没有为我的用例工作,按照这里的指南:https://wordpress.org/documentation/article/htaccess/
1条答案
按热度按时间fzwojiic1#
你可以这样做:
(The不需要
<IfModule>
Package ,应将其删除。)对
REDIRECT_STATUS
环境变量的检查确保只检查直接请求(来自用户),而不是由以后的重写所重写的请求。请注意,我更改了现有规则,将请求直接重写为
/public/index.php
,因为这似乎是目的所在(而不是依赖于DirectoryIndex
)。不过,我想知道你是如何管理你的静态资产(如果有的话)?