htaccess根据主机名重定向到子目录
题:
我需要做什么规则来执行以下重定向:
[1] http://www.xyzblog.com/foo/bar.php => htdocs/projects/xyzblog/foo/bar.php
[2] http://www.xyzblog.com/js/jquery-min.js => htdocs/js/jquery-min.js
[3] http://www.bigcommerce.ch/images/baz.png => htdocs/projects/bigcommerce/images/baz.png
[4] http://www.bigcommerce.ch/css/reset.css => htdocs/css/reset.css
在[2]和[4]中,请求的文件确实存在于原始路径中,因此不会发生重定向。
背景:
我有一个使用Apache Friend优秀XAMPP的WAMP envo。我为不同的客户处理多个项目,并设置了以下目录结构:
htdocs
+ css
+ images
+ includes
+ js
+ projects
+ bigcommerce
+ xyzblog
...
当我开始处理一个新项目时,我在项目下创建了一个同名的目录;此外,我在客户端的主机名后命名项目。因此,如果我开始处理生产站点为http://www.dreamvacation.com
的项目,我会在项目目录下添加一个dreamvacation
目录。
最后我暂时将以下行添加到C:WINDOWSsystem32driversetc
中的hosts
文件中
127.0.0.1 dreamvacation.com
这样,对dreamvacation.com的所有请求都将被短路到我的localhost。
我仍然需要一个组件才能在localhost上编码,并期望它在上传到生产服务器时的行为方式相同。这是一个htaccess文件,用于检查请求中的主机名是什么,并重定向到具有相同名称的目录,而不是顶级域标识符(.com
,.net
等)。只有在请求的文件不存在时才会进行重定向。最后一个条件是因为我将经常使用的文件放在htdocs
下的目录中 - 例如我在htdocs/js
中只有一个jquery-min.js
而在htdocs/css/blueprint/screen.css
中只有一个蓝图css。但是每个项目还有一个js
,css
,...子目录,但仅适用于项目特定的文件。
怎么能实现这一目标?
没有找到相关结果
已邀请:
1 个回复
绊伦欧
。所以,我没有测试它,但这样的东西应该是一个很好的起点(用户RewriteLogLevel和RewriteLog来调试),:
这是基于基于用户名的域的apache文档示例,您应该查看此“大量虚拟主机”的apache文档页面以获取更多详细信息,但是一些示例包括基于文件的规则和您在开发环境中不需要的检查。记得在没有mod_rewrite的情况下使用VirtualHosts肯定更容易,但是如果你愿意,mod_rewrite可以完成所有的工作。