Drupal .htaccess:将任何链接转发到/index.htm

Drupal .htaccess:将任何链接转发到/index.htm,drupal,.htaccess,mod-rewrite,Drupal,.htaccess,Mod Rewrite,我想做以下几点: 如果用户访问某个url或键入该url,并且该url符合以下任一条件: /路径 /路径 /路径/ 我希望htaccess在触发404之前将它们转发到该url+/index.htm。另外,对于某些路径,我想忽略此规则。以下是我尝试过但没有成功的地方: RewriteCond %{REQUEST_URI} !^(admin) RewriteCond %{REQUEST_URI} !^(node) RewriteRule ^/(.*)/$ $1/index.htm [L] 下面是

我想做以下几点:

如果用户访问某个url或键入该url,并且该url符合以下任一条件:

  • /路径
  • /路径
  • /路径/
我希望htaccess在触发404之前将它们转发到该url+/index.htm。另外,对于某些路径,我想忽略此规则。以下是我尝试过但没有成功的地方:

RewriteCond %{REQUEST_URI} !^(admin)
RewriteCond %{REQUEST_URI} !^(node)
RewriteRule ^/(.*)/$ $1/index.htm [L]
下面是该应用程序的概述。它实际上是应用程序中的一个子目录,因为站点目前正在转换中

ParentApp/
  /folder/
  /folder/
  /Drupal/
    /(new application here)
    /...
    /...

重写的方式看起来就像是试图将“index.htm”显示为每个目录的索引文件,实际上并没有重定向到任何地方。使用
DirectoryIndex.htm
可以很容易地模仿这一点

如果您试图重定向到根索引文件,以下是一种更简单的方法:

RewriteRule !^(admin/(.*)|node/(.*)) index.htm [L]

这是一个类似于我在我的网站上使用的规则。确保已启用
重写引擎

解决此问题。使用了错误的正则表达式字符。现在可以工作。

我无法使用DirectoryIndex规则。webapp已为此使用index.php。htaccess文件中的DirectoryIndex规则应否决已定义的任何其他规则。您应该添加一个关于如何设置公用web文件夹的小提纲,以便我们可以进一步帮助您。好的,您正在另一个应用程序的文件夹中运行一个应用程序,对吗?如果在.htaccess inside子应用内重新定义DirectoryIndex,则不会影响ParentApp的DirectoryIndex,它只会影响其所在文件夹内的文件和文件夹。这就像只更改该目录的规则。我只是将DirectoryIndex切换到index.htm,没有任何效果。