从子目录加载新站点作为索引

Posted

技术标签:

【中文标题】从子目录加载新站点作为索引【英文标题】:Load new site from subdirectory as index 【发布时间】:2011-11-05 01:42:18 【问题描述】:

我想从包含默认 index.html 页面的子目录加载我的新网站。

在我的 public_html 中,我有 /oldsite/ 和 /newsite/ 文件夹...

然后.. 当我访问 http://www.mysite.com/.. 我希望它从 http://www.mysite.com/newsite/ 加载所有内容而不重定向。如果可能的话,我想用 .htaccess mod_rewrite 来做。

谁能帮我解决这个问题。如何做到这一点?

【问题讨论】:

【参考方案1】:
# to ensure that server already know that you going to use mod-rewrite
RewriteEngine on
# if the request from http is mysite.com or www.mysite.com go to next line (else abort)
RewriteCond %HTTP_HOST ^(www.)?mysite.com$ [NC]
# if the request destination is not the folder /newsite go to next line
RewriteCond %REQUEST_URI !^/newsite/
# if the requested name is not an existed file in public_html directory
RewriteCond %REQUEST_FILENAME !-f
# if the requested name is not an existed directory in public_html directory
RewriteCond %REQUEST_FILENAME !-d
# forward request to /newsite/
RewriteRule ^(.*)$ /newsite/$1
# if the request domain is mysite.com (with out any string afterward), go to next line
RewriteCond %HTTP_HOST ^(www.)?mysite.com$ [NC]
# forward request to the default file under newsite directory
RewriteRule ^(/)?$ newsite/ [L]

【讨论】:

感谢发帖。这解决了我的问题。我尝试了RewriteCond %HTTP_HOST ^(www.)?mysite.com$,然后是RewriteRule ^(.*)$ /newsite/$1 [QSA,L],但没有奏效。【参考方案2】:

部署这样的网站通常不是一个好主意。相反,您应该为站点的实时版本和开发版本创建虚拟主机。如果您当前的托管服务提供商无法做到这一点,您可以使用 public_html 的符号链接,当新版本准备好上线时,只需更改其路径。希望对您有所帮助。

【讨论】:

但是有没有办法用 htaccess 做到这一点? 我认为这可能会有所帮助:***.com/questions/990392/…

以上是关于从子目录加载新站点作为索引的主要内容,如果未能解决你的问题,请参考以下文章

301 将所有页面重定向到新站点 除了 1 个目录

opencv 和 Visual Studio 2010 无法从子目录加载图像

如何从子目录加载张量流中的数据

Jasmine Rails,未从子目录加载 src_files

配置 httpd.conf 以在 Apache Red Hat Linux 上添加新站点

从子目录飞行PHP路由