【发布时间】:2011-01-26 16:55:18
【问题描述】:
问题:
执行以下重定向需要什么规则集:
[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 环境。我为不同的客户处理多个项目,并设置了以下目录结构:
htdocs
+ css
+ images
+ includes
+ js
+ projects
+ bigcommerce
+ xyzblog
...
当我开始处理一个新项目时,我会在项目下创建一个同名目录;此外,我以客户端的主机名命名项目。因此,如果我开始从事生产站点为http://www.dreamvacation.com 的项目,我会在项目目录下添加一个dreamvacation 目录。
最后我暂时在C:\WINDOWS\system32\drivers\etc我的hosts文件中添加以下行
127.0.0.1 dreamvacation.com
这样,对 dreamvacation.com 的所有请求都会短路到我的本地主机。
我仍然需要一个组件才能在 localhost 上进行编码,并希望它在上传到生产服务器时表现相同。这是一个 htaccess 文件,用于检查请求中的主机名并重定向到具有相同名称但没有顶级域标识符(.com、.net 等)的目录。仅当请求的文件不存在时才应进行重定向。最后一个条件是因为我将经常使用的文件放在htdocs 下的目录中——例如我在htdocs/js 中只有一个jquery-min.js,在htdocs/css/blueprint/screen.css 中只有一个蓝图css。但是,每个项目也有一个 js、css、... 子目录,但仅适用于项目特定的文件。
如何做到这一点?
【问题讨论】:
-
一般来说...考虑使用
vhosts。 httpd.apache.org/docs/2.0/vhosts/examples.html
标签: apache .htaccess redirect performance development-environment