我正在尝试将所有请求重定向到domain.com/drupal到domain.com,包括/ drupal中的所有子目录。
我已经看到了几个答案,告诉我如何用.htaccess完成与此相反的事情,但没有什么可以这样做的。我在.htaccess中尝试了以下一行 -
RewriteRule /drupal/* ^/(.*)
以及上述的几种变体,基于这些答案,但没有任何运气。
谢谢!
答案 0 :(得分:0)
试试这一行:
RewriteRule /drupal/(.*) /$1 [QSA,L]
答案 1 :(得分:0)
让我直截了当......你在<DocumentRoot>/drupal/
安装了Drupal。您不想更改drupal安装目录,也不想更改Web服务器配置中的DocumentRoot
。您希望将任何请求(例如/foobar.php
)重定向到drupal目录,结果可能是/drupal/foobar.php
。而所有这些都没有将整个内容暴露给用户。到目前为止?好的,我只能假设您有一个Apache网络服务器,否则.htaccess将无效......
首先,确保您实际上可以使用.htaccess,因此请检查apache配置中的相关AllowOverride
指令。
然后在<DocumentRoot>/.htaccess
:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/drupal.*
RewriteRule ^/(.*)$ /drupal/$1 [P]
RewriteCond确保您不会遇到无限循环。 RewriteRule的第一部分始终是客户端请求的URL。我们在括号内匹配的部分前缀为/drupal/
,并通过[P]
将其强制为代理请求,以便apache只执行内部重定向(而不是向客户端发送“文档已移动”重定向码)。