RewriteRule webroot到文件系统路径

时间:2013-12-11 19:27:24

标签: apache mod-rewrite

在这里和那里检查了很多关于相关问题的主题, 但还没有结果。

所以这就是问题所在。

两个项目:

  • proj:site.loc
  • proj2.0:newsite.loc

它们位于文件系统的不同位置。 我需要在内部从一个项目重定向到另一个项目, 所以保留了site.loc的url。 例如。请求site.loc /嘿/我需要apache来提供proj2.0文件。

首先,我知道在.htaccess级别上我们不能将RewriteRule用于文件系统路径 (出于安全原因)。 好的,Alias是一种解决方法。

假设我向虚拟主机添加别名如下:

Alias /newsite /some/path/to/proj2.0

然后,如果我将规则添加到proj的.htaccess:

RewriteRule ^hey/there /newsite

这样可行。

但是,webroot不起作用:

RewriteRule ^$ /newsite

我是在做错什么还是有关于webroot的怪癖?

提前致谢

1 个答案:

答案 0 :(得分:0)

你不应该重写你的root,但要压制它。以下是我在禁止www

的项目中的表现
<IfModule mod_rewrite.c>
  RewriteCond %{HTTPS} !=on
  RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
</IfModule>

应该有一种方法可以以同样的方式使用/ newsite。