第一次写一个.htaccess,所以…
我试图允许索引一个目录,然后为特定目录添加一个密码。 我在这里正在写一个.htaccess文件。
我正在努力的服务器否认dirs索引(我认为),但本身并没有使用.htaccess文件。 我做了这个声明,它不会返回一个内部错误,当我在我的htaccess文件中添加以下行我想允许索引:
<Files index.html> Order allow,deny Allow from all </Files>
我使用以下内容时出现内部错误:
<Files index.html> Order allow,deny Allow from all </Files> <Directory> Order allow,deny Deny from all </Directory>
我用上面的,他们是非常简单的声明,我只是检查.htaccess文件是否工作。
我认为这与服务器上的一些configuration文件中的拒绝有关。 我检查了apache2.conf并修改那个似乎没有太多的。 也许我错误地修改了它,但是我也认为它可能与000-默认文件(/ etc / apache2 / sites-enabled /)有关,因为它们被声明如下:
ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options -Indexes FollowSymLinks MultiViews AllowOverride Limit Order allow,deny allow from all </Directory>
我认为必须成为+索引。 但是,文件000-default是一个符号链接,我不知道它在哪里链接,以及在哪里可以find文件。 或者我不应该触摸这个,并添加一个新的文件链接到目录…
根据文档 : <Directory>不能在htaccess 上下文中使用 。
当你在.htaccess中放置Options Indexes或DirectoryIndex index.html时会发生什么?
目录中使用.htaccess文件(以及它们允许包含的内容)必须在主apache2.confconfiguration文件(或者它包含的configuration文件)中进行configuration,如AllowOverride文档中所述
我的Apacheconfiguration文件有
<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all </Directory>
AllowOverride None应用于/子目录下的所有目录。 后来应该有这个
<Directory /var/www> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all </Directory>
这加强了主Document Root及其所有子目录的规则。
文件名.htaccess是一个默认值,但可以使用apache2.conf的AccessFilename指令来更改,所以我会检查这个指令是不存在的。
当你编辑apache2.conf你应该询问正在运行的Apache服务来重新加载它的configuration。 一个办法是做到这一点
apache2ctl configtest
如果Apache说你的configuration正常,请让它加载而不停止
apache2ctl graceful