站点根目录下非Drupal目录不能访问

由 kDolphin 于 周六, 2007-05-26 19:14 提交。

我启用了Clear URL, Path, Pathauto,现在问题是非Drupal的目录不能访问,因为我的Drupal是安装在根目录下的。
我想问题应该是出在 .htaccess,要如何做才能让那些目录被访问到呢?

你那个Drupal目录下没

你那个Drupal目录下没有index文件的话,就在非Drupal目录下建一个.htaccess文件:

Options +Indexes

--------------------------------------------------
非常大米:http://www.verydummy.com/
--------------------------------------------------

好像不行,我需要访

好像不行,我需要访问的几个目录都是其他的程序,他们各自有index,目录里也有.htaccess。
但是现在访问都会是Drupal报告没有此页面。
我的Drupal安装在http://kdolphin.com,当我访问http://kdolphin.com/p的时候就抱错了,而实际上/p里是有东西的。

如果是index.html不是inde

如果是index.html不是index.php需要把drupal那个.htaccess改一下:

DirectoryIndex index.php index.html

如果还不行,试一下

  # Rewrite current-style URLs of the form 'index.php?q=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
//加上这句 p 是你的子目录名
  RewriteCond %{REQUEST_FILENAME} !/p.*
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

如果还不行,我也想不出啥辙来了,htaccess总是让我晕菜。
--------------------------------------------------
非常大米:http://www.verydummy.com/
--------------------------------------------------

有点新发现

我发现这两个目录用了.htaccess和.htpasswd来控制访问才会出现Drupal的404页面,如果删除就能正常访问,根的.htaccess也不用改。
我现在还在Drupal.org那里翻文档看看能不能两全。

解决方法

找到解决方法了,这个问题主要出现在Drupal目录下的其他目录中使用.htaccess和.htpasswd来控制访问的时候。
解决方法是编辑需要访问的目录总的.htaccess(非root目录),增加下面这句:
ErrorDocument 401 "Unauthorized"

问题解决了

不能访问的目录都是由.htaccess和.htpasswd来控制访问的,如果去掉这两个就没什么问题。
两全的办法是在子目录的.htaccess中添加这句:
ErrorDocument 401 "Unauthorized"