如何将来自域的请求无形地重定向到子目录?

时间:2009-08-28 17:39:22

标签: apache drupal .htaccess mod-rewrite

我正在尝试将来自example.com的所有请求重定向到子目录。下面的代码实现了这一点,但我无法使子目录不可见。 (该子目录包含一个带有自己的/ htaccess文件的Drupal实例。这可能是问题吗?)

  RewriteCond %{HTTP_HOST} ^example.com$ [NC]

  RewriteRule ^(.*)$ http://example.com/drupal/d6/$1 [L]

最终在浏览器中显示如下:

http://example.com/drupal/d6/install.php?profile=default

编辑:我尝试按照建议从RewriteRule中删除http://example.com,但重定向仍然不可见。 : - (

2 个答案:

答案 0 :(得分:0)

您需要重写到该位置,而不是完整的http:// URL。如果您对URL执行此操作,则即使[R] e上没有RewriteRul标记,也会发出重定向。转而去/drupal/d6/$1它应该保持重写(而不是“升级”到重定向)。

来自http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

Prefix Substitution with http://thishost[:thisport]/ (which makes the new URL a URI) to force a external redirection.

答案 1 :(得分:0)

绝对URl会导致重定向。只使用一条路径:

RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteCond $0 !^drupal/d6/
RewriteRule .* drupal/d6/$0 [L]