首先我已经有用的东西......
在我的服务器上,我使用停放的域,其中每个域指向同一目录,并且软件仅在从类似的命名数据库中提取之前确定域是什么。对于文件(图像,脚本等),我目前有以下设置...
的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 ,Apache会将(内部)请求重写为...
的public_html / www.example2.com /图像/ image77.png
外部路径(在浏览器中)只显示为...
http://www.example2.com/images/image77.png
其次,我试图解决的问题......
然而,随着我添加更多域名,这开始挤占我的* public_html / *目录。我尝试做的只是将所有域资产目录移动到如下所示的目录设置中......
的public_html /网络/
...所以www目录会有以下列表...
的public_html /网络/ example1.com /
的public_html /网络/ example2.com /
的public_html /网络/ example2.com /
最后,我对如何解决问题的看法......
第一个Apache变量$1
是从%{REQUEST_URI}
生成的。如果我们可以简单地取代期间。在 www 和域名之间,这应该将重写更新为更新的格式,虽然我不知道如何做到并保持已经完成的工作?
换句话说,我们可以创建一个重写条件,用斜杠替换第一个句点吗?
答案 0 :(得分:0)
您可以在www.
之后捕获域部分,稍后在RewriteRule中将其用作%1
RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule ^.*?/(.*)$ /public_html/www/%1/$1 [L]