Drupal 如何创建从子目录到根域的重定向?

Drupal 如何创建从子目录到根域的重定向?,drupal,.htaccess,redirect,Drupal,.htaccess,Redirect,我正在尝试将所有到domain.com/drupal的请求重定向到domain.com,包括/drupal中的所有子目录 我已经看到了几个答案,告诉我如何使用.htaccess实现相反的目的,但没有什么可以这样做。我在.htaccess中尝试了以下行- RewriteRule /drupal/* ^/(.*) 根据这些答案,还有上面的几个变体,但没有任何运气 谢谢 试试这句话: RewriteRule /drupal/(.*) /$1 [QSA,L] 让我直说吧。。。您在/Drupal/中安

我正在尝试将所有到domain.com/drupal的请求重定向到domain.com,包括/drupal中的所有子目录

我已经看到了几个答案,告诉我如何使用.htaccess实现相反的目的,但没有什么可以这样做。我在.htaccess中尝试了以下行-

RewriteRule /drupal/* ^/(.*)
根据这些答案,还有上面的几个变体,但没有任何运气

谢谢

试试这句话:

RewriteRule /drupal/(.*) /$1 [QSA,L]

让我直说吧。。。您在/Drupal/中安装了Drupal。您不想更改drupal安装目录,也不想更改Web服务器配置中的DocumentRoot。您希望将任何请求(例如/foobar.php)重定向到drupal目录,结果可能是/drupal/foobar.php。所有这些都不需要向用户公开全部内容。到目前为止是吗?好的,我只能假设您有一个Apache Web服务器,否则.htaccess将无法工作

首先,确保您确实被允许使用.htaccess,因此请检查apache配置中的相关AllowOverride指令

然后在你的/.htaccess中这样尝试:

RewriteCond确保您不会遇到无限循环。重写规则的第一部分始终是客户端请求的URL。我们在括号内匹配的部分前面加上/drupal/前缀,并通过[P]强制它成为代理请求,以便apache只执行内部重定向,而不是向客户端发送文档已移动的重定向代码


顺便说一句:我没有测试它。我的代码可能有拼写错误。阅读了解更多信息。

不,ensignavenger希望它反过来。你描述了大多数人要求的正常版本。你是说他把drupal移到DocumentRoot?好的,那么你的答案是正确的,保罗。尽管如此,RewriteEngine仍在运行,有关AllowOverride的内容仍然适用。谢谢,我正试图做相反的事情-该站点最初构建在/drupal目录中,然后我将所有文件移到根目录,这很好,除了内容中的图像和一些链接仍然指向旧的/drupal路径。我能够使用我的web主机提供的重定向管理器来配置重定向!你的回答非常详尽,提供了大量信息!谢谢,我能够使用我的webhost提供的重定向管理器来配置它。我已经尝试过了,但它不起作用,但是后来我发现了一些其他的帮助。你提供的代码看起来像我想要的,所以虽然我不能测试它,但我会投赞成票。我将在下次需要执行此操作时尝试:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/drupal.*
RewriteRule ^/(.*)$ /drupal/$1 [P]