【发布时间】:2010-12-10 05:37:39
【问题描述】:
编辑
在下面的 Seth 发表评论并前往有用的 apache 页面 here 之后,我发现 VirtualHosts 是解决以下问题的方法。
/编辑
--原帖--
首先,关于文件设置的一些背景知识。我正在运行一个托管多个域的 LAMP 服务器。我在这台服务器上有暂存站点和实时站点,位于 Web 根目录下的不同目录下。
示例 /webroot/live/site1/[公共文件] /webroot/live/site2/[公共文件]
/webroot/stage/site1/[公共文件] /webroot/stage/site2/[公共文件]
每个域的域都指向服务器的 IP,该 IP 指向 webroot 目录。我有一个 .htaccess 文件,可以根据 http_host 加载相应的内容。
例子
RewriteCond %{HTTP_HOST} ^www.site1-live.com [NC]
RewriteRule ^(.*)$ /live/site1/$1 [PT,L,QSA]
RewriteCond %{HTTP_HOST} ^www.site1-stage.com [NC]
RewriteRule ^(.*)$ /stage/site1/$1 [PT,L,QSA]
这些非常适合访问主页和任何内部页面,即使特定页面如 site1-live.com/view/123。每个站点的 htaccess 都会处理这些。
我的问题(抱歉花了这么长时间才到这里):
当我前往网站中的任何子目录时,例如 www.site1-live.com/rss,内容加载正常,但 URL 更改为类似以下内容
http://www.site1-live.com/live/site1/rss/
基本上显示了从 webroot 到文件的路径。
我怎样才能避免这种情况?我显然希望网址保持 www.site1-live.com/rss。我是否需要 rss 目录中的 htaccess 文件以某种方式阻止它?
提前致谢!
【问题讨论】:
-
所以当你访问一个文件夹时它只显示根 url,而不是文件或页面?
-
对,如果我去 www.site1-live.com/somepage.php 它保持原样。不过,我认为 Seth 对虚拟主机的推荐可能是正确的路线。我会调查这些。
标签: .htaccess mod-rewrite redirect