.htaccess文件不会响应localhost:63342在phpstorm中

时间:2014-09-12 19:54:17

标签: php apache .htaccess

我正在使用IDE PHPStorm 7.1.4并尝试制作.htaccess文件以阻止用户进入特定目录。

我的文件夹结构如下:

enter image description here

我想这样做,以便用户无法进入/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中做同样的事情?

2 个答案:

答案 0 :(得分:1)

如果您使用的是默认配置的Web服务器,那么您实际上正在使用PHP的新Web服务器功能,该功能无法收听.htaccess个文件。只有Apache侦听.htaccess个文件。

如果您想测试此功能,可以设置运行Linux的VM并进行测试,或者在系统上设置WAMP并从那里运行。

编辑1


好的,你可以添加一些关于确切问题的更多细节吗?当您访问localhost/app/时,它会显示index.php文件,而不是404。应用程序是否完全通过index.php文件工作?如果是,index.phpapp?{/ p>中的public文件是否为.htaccess

编辑2


好的,这是你需要做的。将.htaccess文件放在app目录的根目录中。清除此DENY from ALL的内容并放置行.htaccess。您可以将.htaccess文件保留在项目的根目录中。

编辑3


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]