在浏览器中访问 public 个文件夹时隐藏目录列表
Hide directory listing when accessing public folders in the browser
如何限制对我的 zend framework 2 public 文件夹(例如 css
文件夹)的访问?我想隐藏通过 http
访问文件夹时显示的目录列表。但我希望应用程序可以正确使用这些文件。
当我访问我域中的 css
文件夹时显示此目录列表:
虚拟主机配置:
<VirtualHost *:80>
ServerName server1.jobsoft.co
ServerAlias server1.jobsoft.co
DocumentRoot /var/www/html/engsvc_dev/public
ErrorLog /var/log/httpd/engsvc_dev.error.log
CustomLog /var/log/httpd/engsvc_dev.common.log common
<Directory /var/www/html/engsvc_dev/public>
DirectoryIndex index.php
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
我的 .htaccess
文件:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?server1.jobsoft.co$
RewriteCond %{REQUEST_URI} !^/engsvc_dev/public/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /public/
RewriteCond %{HTTP_HOST} ^(www.)?server1.jobsoft.co$
RewriteRule ^(/)?$ /public/index.php [L]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/ [L]
</IfModule>
我编辑了您的问题并添加了 "directory listing" 一词,因为这是显示在您屏幕上的文件列表的通常称呼方式。起初我在阅读您的问题后不知道您想要什么。但是在你的评论之后我明白了。
通常情况下,您可以通过向 Apache 服务器的 .htaccess
文件添加额外的规则来防止 directory-listing。
您可以找到很多关于如何执行此操作的帖子,例如 here and here or many more by searching the topic on Whosebug。
魔法被关闭:
Options -Indexes
并由
开启
Options +Indexes
在 this apache documentation 中,您可以阅读 选项指令 一章中的以下内容:
Indexes
If a URL which maps to a directory is requested and there is no DirectoryIndex
(e.g., index.html
) in that directory, then mod_autoindex
will return a formatted listing of the directory.
如何限制对我的 zend framework 2 public 文件夹(例如 css
文件夹)的访问?我想隐藏通过 http
访问文件夹时显示的目录列表。但我希望应用程序可以正确使用这些文件。
当我访问我域中的 css
文件夹时显示此目录列表:
虚拟主机配置:
<VirtualHost *:80>
ServerName server1.jobsoft.co
ServerAlias server1.jobsoft.co
DocumentRoot /var/www/html/engsvc_dev/public
ErrorLog /var/log/httpd/engsvc_dev.error.log
CustomLog /var/log/httpd/engsvc_dev.common.log common
<Directory /var/www/html/engsvc_dev/public>
DirectoryIndex index.php
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
我的 .htaccess
文件:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?server1.jobsoft.co$
RewriteCond %{REQUEST_URI} !^/engsvc_dev/public/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /public/
RewriteCond %{HTTP_HOST} ^(www.)?server1.jobsoft.co$
RewriteRule ^(/)?$ /public/index.php [L]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/ [L]
</IfModule>
我编辑了您的问题并添加了 "directory listing" 一词,因为这是显示在您屏幕上的文件列表的通常称呼方式。起初我在阅读您的问题后不知道您想要什么。但是在你的评论之后我明白了。
通常情况下,您可以通过向 Apache 服务器的 .htaccess
文件添加额外的规则来防止 directory-listing。
您可以找到很多关于如何执行此操作的帖子,例如 here and here or many more by searching the topic on Whosebug。
魔法被关闭:
Options -Indexes
并由
开启Options +Indexes
在 this apache documentation 中,您可以阅读 选项指令 一章中的以下内容:
Indexes If a URL which maps to a directory is requested and there is no
DirectoryIndex
(e.g.,index.html
) in that directory, thenmod_autoindex
will return a formatted listing of the directory.