0

我正在开发一个 Drupal 站点,该站点在很多内容中都有硬编码链接(我没有创建该站点)。不幸的是,这意味着该站点必须位于诸如“www.example.com/drupal”之类的子目录中,否则链接将中断。我已成功将站点根目录重定向到子目录,并使用站点根目录 htaccess 文件中的以下代码将其隐藏:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule (.*) drupal/$1 [L]
RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

但是,如果我转到 www.example.com/drupal,子目录仍然会显示。这意味着 www.example.com 和 www.example.com/drupal 具有相同的内容,这对 SEO 不利。有没有办法让 /drupal 重定向到 root 而不会导致循环?我几乎尝试了其他线程中的所有帖子,但没有一个有效。

4

1 回答 1

0

您需要在重写 URL 之前进行重定向。您还需要检查您实际上是否正在重写合法资源。

  1. 交换规则,重定向应该首先发生

  2. 向 drupal 规则添加检查


<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{REQUEST_URI} !^/drupal
RewriteRule (.*) drupal/$1 [L]
</IfModule>
于 2012-10-24T23:17:32.273 回答