log*_*nit 52 php apache .htaccess codeigniter
我正在使用dompdf插件进行codeigniter:http://codeigniter.com/wiki/PDF_generation_using_dompdf/
从表单生成pdf.这适用于localhost,但在实时服务器上,我在错误日志中得到了这个:
Directory index forbidden by Options directive: /var/www/vhosts/domain.co.uk/httpdocs/mm/userdata/account1/invoices/
Run Code Online (Sandbox Code Playgroud)
知道这意味着什么吗?我已经搜索了答案,并发现了一些建议编辑httpd.conf,但我没有访问权限.
我还尝试将一个空白的index.html文件添加到根目录和文档目录中(也在其他地方建议,但无济于事).
任何帮助非常感谢.
谢谢!
Mic*_*ski 61
此目录中的main httpd.conf或.htaccess文件或附近的父目录可能包括:
Options -Indexes
Run Code Online (Sandbox Code Playgroud)
+Indexes如果您没有访问权限.htaccess并且想要列出和浏览目录内容,缺少默认值index.html, index.php等,您的主机可能必须将其设置为.如果目录不应该有默认文件但您没有启用Indexes,则可能只直接定位其中的内容的文件名.
Indexes在许多Apache安装中,默认情况下通常禁用该选项.
Apache核心文档中提供了完整的详细信息Options
Mar*_*c B 30
这意味着该目录中没有默认文档(index.html,index.php等...).在大多数网络服务器上,这意味着它会显示目录内容的列表.但是服务器配置(Options -Indexes)显示该目录是禁止的
maj*_*man 10
如果您正在运行RHEL(我遇到它),您可能遇到的另一个问题是,即使您放置了选项索引,也有一个配置了httpd包的默认欢迎页面将覆盖您的设置.该文件位于/etc/httpd/conf.d/welcome.conf中.有关详细信息,请参阅以下链接:http: //wpapi.com/solved-issue-directory-index-forbidden-by-options-directive/
kao*_*ngr 10
对于不包含index.html或index.php文件的目录,在Web浏览器中可见的索引.
我在Scientific Linux的httpd Web服务器上配置时遇到了很多麻烦,不再显示这些索引.
httpd.conf虚拟主机目录指令:
<Directory /home/mydomain.com/htdocs>
Options FollowSymLinks
AllowOverride all
Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)
并在.htaccess中添加以下行:
Options -Indexes
Run Code Online (Sandbox Code Playgroud)
目录索引仍然出现..htaccess设置不起作用!
怎么可能,.htaccess中的其他设置正在工作,为什么不这个呢?怎么了?它应该工作!%#$&^ $%@#!!
将httpd.conf的Options行更改为:
Options +FollowSymLinks
Run Code Online (Sandbox Code Playgroud)
并重新启动Web服务器.
来自Apache的核心mod页面:(https://httpd.apache.org/docs/2.4/mod/core.html#options)
使用+或 - 混合选项与没有语法的选项是无效的语法,并且在服务器启动期间通过语法检查中止将被拒绝.
对于不包含index.html或index.php文件的目录,不再显示Voilà目录索引.
尝试进行此类目录访问时,新条目开始显示在"error_log"中:
[Fri Aug 19 02:57:39.922872 2016] [autoindex:error] [pid 12479] [client aaa.bbb.ccc.ddd:xxxxx] AH01276: Cannot serve directory /home/mydomain.com/htdocs/dir-without-index-file/: No matching DirectoryIndex (index.html,index.php) found, and server-generated directory index forbidden by Options directive
Run Code Online (Sandbox Code Playgroud)
此条目来自Apache模块'autoindex',其LogLevel为'error',如错误消息的[autoindex:error]所示---格式为[module_name:loglevel].
要阻止记录这些新条目,需要将LogLevel更改为更高级别(例如'crit')以记录更少 - 仅更严重的错误消息.
请参阅Apache 2.4的LogLevel核心指令.
emerg,alert,crit,error,warn,notice,info,debug,trace1,trace2,trace3,tracr4,trace5,trace6,trace7,trace8
列表深入的每个级别都会记录任何先前级别的所有消息.
Apache 2.4的默认级别是"警告".因此,所有分类为emerg,alert,crit,error和warn的消息都将写入error_log.
在httpd.conf的<Directory> .. </ Directory>部分中添加了以下行:
LogLevel crit
Run Code Online (Sandbox Code Playgroud)
我的虚拟主机的httpd.conf <Directory> .. </ Directory>配置:
<Directory /home/mydomain.com/htdocs>
Options +FollowSymLinks
AllowOverride all
Require all granted
LogLevel crit
</Directory>
Run Code Online (Sandbox Code Playgroud)
并添加到/ home/mydomain.com /htdocs/.htaccess,您网站的.htaccess文件的根目录:
Options -Indexes
Run Code Online (Sandbox Code Playgroud)
如果您不介意"错误"级别的消息,请省略
LogLevel crit
Run Code Online (Sandbox Code Playgroud)
不再对Web空间中的目录进行自动索引.没有更改.htaccess.但是,需要访问/ etc/httpd中的httpd配置文件
编辑/etc/httpd/conf.modules.d/00-base.conf并注释该行:
LoadModule autoindex_module modules/mod_autoindex.so
Run Code Online (Sandbox Code Playgroud)
通过在它前面添加一个#然后保存文件.
在/etc/httpd/conf.d目录中重命名(mv)
sudo mv autoindex.conf autoindex.conf.<something_else>
Run Code Online (Sandbox Code Playgroud)重启httpd:
sudo httpd -k restart
Run Code Online (Sandbox Code Playgroud)
要么
sudo apachectl restart
Run Code Online (Sandbox Code Playgroud)autoindex_mod现已禁用.
禁用autoindex模块输入命令
sudo a2dismod autoindex
Run Code Online (Sandbox Code Playgroud)
启用autoindex模块进入
sudo a2enmod autoindex
Run Code Online (Sandbox Code Playgroud)
插入这一行:
<Directory "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs">
Options +Indexes
</Directory>
Run Code Online (Sandbox Code Playgroud)
在您的C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.conf文件中。我假设您正在使用虚拟主机进行开发。
然后,当然,只需重新启动 Apache。