我正在使用IDE PHPStorm 7.1.4并尝试制作.htaccess文件以阻止用户进入特定目录。
我的文件夹结构如下:
我想这样做,以便用户无法进入/app
文件夹或该文件夹中的任何文件夹。为此,我发现我可以在.htaccess
内使用这段代码:
Options -Indexes
我正在使用PHPStorm本身的PHP Web服务器(转到localhost:63342/projectname/folderinproject/etc/etc/
)。
问题
当指向/app
文件夹的页面时,出现404错误,
说索引文件不存在。
当我在index.php
文件夹中创建/app
文件,并且我重定向到/app
文件夹时,它只是加载index.php
。
使用普通的HTML项目执行此操作并通过我的Windows资源管理器打开index.html
时,会出现同样的问题
问题
我如何才能使我的项目实际响应.htaccess
文件并且不允许我或其他用户进入/app
文件夹?
修改
我发现当我将我的项目中的所有文件复制到c:\xampp\htdocs\
文件夹并在XAMPP中打开我的Apache服务器时,只要我通过常规打开它,.htaccess
文件就会正常工作浏览器(未在phpstorm中选择index.php
并选择Open in browser...
)。
有没有办法在不移动所有文件的情况下在Phpstorm中做同样的事情?
答案 0 :(得分:1)
如果您使用的是默认配置的Web服务器,那么您实际上正在使用PHP的新Web服务器功能,该功能无法收听.htaccess
个文件。只有Apache侦听.htaccess
个文件。
如果您想测试此功能,可以设置运行Linux的VM并进行测试,或者在系统上设置WAMP并从那里运行。
好的,你可以添加一些关于确切问题的更多细节吗?当您访问localhost/app/
时,它会显示index.php
文件,而不是404
。应用程序是否完全通过index.php
文件工作?如果是,index.php
或app
?{/ p>中的public
文件是否为.htaccess
好的,这是你需要做的。将.htaccess
文件放在app目录的根目录中。清除此DENY from ALL
的内容并放置行.htaccess
。您可以将.htaccess
文件保留在项目的根目录中。
PHPStorm将使用PHP Engine的Web服务器。如果将XAMPP位置添加为部署路径,则部署起来相当快。您甚至可以设置PHPStorm以在保存时自动将文件部署到XAMPP位置。以下是JetBrains网站JetBrains Config的演练。
{{1}}插件主要用于编辑和格式化,而不是用于修改PHP Engine的服务器环境。
答案 1 :(得分:1)
使用mod_alias更加容易:
Redirect 301 /app /new_directory
但是如果你的htaccess文件中已经有重写规则,那么你需要坚持使用mod_rewrite:
RewriteRule ^app/(.*)$ /new_directory/$1 [L,R=301]