2013-04-14 64 views
0

首先我有一个已经工作的...阿帕奇国防部重写 - 以www更换www.example.com/example.com

在我的服务器我用停放的域名,每个域名指向同一个目录并且该软件仅仅在从类似的命名数据库拉出之前确定域是什么。对于文件(图片,脚本等),我现在有以下安装...

的public_html/www.example1.com/

的public_html/www.example2.com/

的public_html/www.example2.com/

...使用以下重写......

RewriteCond %{REQUEST_URI} !\.(gif|jpg|js|mp3|png)$ 
RewriteRule ^[^/]*/(images|search|scripts|sounds)(.+) $1$2 [QSA] 

所以,例如,如果你从example2.com阿帕奇重写(内部)的请求,请求image77.png ...

的public_html/www.example2.com /图片/ image77.png

的外部路径(在你的浏览器)只会出现...

http://www.example2.com/images/image77.png 

其次,我试图解决的问题...

但是,当我添加更多的域这开始挤满我的* public_html/*目录。我正在试图做的是简单地把所有的域资产目录中的目录设置,看起来像下面...

的public_html/WWW/

...这样的WWW目录将有以下上市...

的public_html/WWW/example1.com/

的public_html/WWW/example2.com/

的public_html/WWW/example2.com/


最后,从%{REQUEST_URI}生成的你如何可能处理这个问题的想法...

第一Apache的变量$1。如果我们可以简单地替换这个时期。 www和域名这应该更新重写到新的格式,虽然我不知道如何做到这一点,并保持已有的机制已成熟?

换句话说,我们可以创建一个重写条件,用斜杠来替换第一个句点吗?

回答

0

可以www.后捕获域部分,后来在重写规则使用它作为%1

RewriteCond %{HTTP_HOST} ^www\.(.+)$ 
RewriteRule ^.*?/(.*)$ /public_html/www/%1/$1 [L] 
相关问题