1) 我有一个位于 http://example.com
的Drupal网站,我的目录位于http://example.com/foo
,但我还有一个带别名的Drupal页面http://example.com/foo
。如何让Drupal页面服务?目前,由于Drupal的.htaccess文件中的Options -Indexes
声明,我获得了403禁止页面,但我不想删除它,因为我不希望目录可浏览。
编辑:我已使用以下规则解决了这个问题:
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)$ http://localhost/s2k/index.php?q=$1 [L,QSA]
2)为了使问题更加困难,给定相同的方案,如果我在目录index.html
中有http://example.com/foo/index.html
文件,我总是希望这个优先级在Drupal的别名页面上(目前它正在执行 - 目前我修改了.htaccess文件,以便任何带有index.html文件的目录显示它 - DirectoryIndex index.php index.html
)。
修改
现在,我怎么写一个RewriteCond来查看目录中是否有index.html文件?
答案 0 :(得分:3)
我不是RewriteRule Guru并且非常确定有更好的方法来实现这一点,例如有条件的RewriteCond。
但只需添加
RewriteCond %{REQUEST_URI} =/foo/
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
在默认重写之上Conds和规则使这个规则启动/ foo /而不是Drupal默认值。如果某些东西不是dir,RewriteCond %{REQUEST_FILENAME} !-d
只会应用RewriteRule。
答案 1 :(得分:2)
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteRule ^(.*)$ http://localhost/s2k/index.php?q=$1 [L,QSA]
答案 2 :(得分:0)
RewriteCond %{REQUEST_FILENAME}index.html -f
RewriteRule ^(.*)$ $1index.html [L]
RewriteCond %{REQUEST_FILENAME}/index.html -f
RewriteRule ^(.*)$ $1/index.html [L]
[normal Drupal rewrite rules]