Htaccess:将域内的子目录重写到主域

我必须重写一个子目录才能进入主域。 例如,我有www.mysite.com,我想将www.mysite.com/newersite重写为www.mysite.com

这是我在我的htaccess文件中使用的:

RewriteCond %{HTTP_HOST} ^mysite\.com$ [OR] RewriteCond %{HTTP_HOST} ^www\.mysite\.com$ RewriteCond %{REQUEST_URI} !^/newsitecontainer/newsite/ RewriteRule (.*) /newsitecontainer/newsite/$1 

这个重写代码工作正常,但有两个我关心的问题:

1)在我的newsitecontainer有两个依赖的文件夹为新的网站正常工作,“newsite”目录和“数据”目录。 数据目录需要位于“newsite”文件夹之外(以root身份)。 目前(现场网站)是www.mysite.com。 我想重写这两个子目录,以当前的域名www.mysite.com(除了“数据”目录,只需要在“newsite”目录中调用正确的位置) 。

这是我目前的目录结构简单的图表:

http://i56.tinypic.com/s5y1ja.png

我想我想要“newsite”url等于目前的域名(www.mysite.com),“newsite url”= www.mysite.com。 我想把“data”目录改写成显示为“newsite”目录,但仍然在根目录(newsitecontainer)中。

我刚刚熟悉这个htaccess的东西,所以这可能听起来很混乱。 我知道我是…

2)第二个问题是一旦“newsite”和“data”目录被成功地重写,我想重写“newsite”子目录的内容页面,直接显示它们是新重写的一部分目前的域名(www.mysite.com)。 我想这样做,因为我使用(Elgg)和url的平台有很多插件可以是真正漫长和丑陋的(不帮助search引擎优化的目的)。

因此,例如(成功改写问题#1后),我想重写这样的:“www.mysite.com/modfolder/submodfolder/visible-page/”这个“www.mysite.com/visible-page/ “这将重写对mod目录的任何引用,它是子目录(和实际页面),以显示一个干净的URL作为当前域和mods目录的实际可见页面。

我知道这是所有的时间,可能很容易做,但给我的情况我不知道如何正确地重写上述目录。

我真的很感谢在这方面的帮助。 这是我唯一要做的事情来向我的客户展示这件事。 当然,我可以给他写url,以查看网站,但这一切都是关于演示文稿,我需要完成这个,使其完全生活,并开始推广网站。 所以请帮助。

感谢提前一百万!

这是我的解决scheme:

根据文件types,设置一个环境variables。 例如:

 RewriteRule (.*)(\.(pdf|jpg|jpeg|gif|png|ico)){1}$ $1$2 [QSA,E=PATH_LOCAL:../staticfiles] 

然后稍后,通过连接根文件夹和环境variables来testing它是否是一个文件:

 RewriteCond %{DOCUMENT_ROOT}/%{ENV:PATH_LOCAL}/%{REQUEST_FILENAME} -f # The file exists => re-write it to the FULL filename: RewriteRule ^(.+) %{DOCUMENT_ROOT}/%{ENV:PATH_LOCAL}/%{REQUEST_FILENAME} [QSA,L] 

现在有了这些迹象,你可以find自己的方式来达到你的目标;)