明天就要回家过年了,真让人兴奋
自从走出校门的那一启刻起,对家的那份思念与向往越来越浓。。。
本想post一篇sunshine life ,还是log一下今年最后一天工作中遇到的小问题吧
场景:最近公司有一内部站点是PHP做的项目布署在apache上默认端口为8080同时也有几个站点在IIS,为了方便于用户记住URL因些要把http://www.ggyy.com:8080(从公网访问)
http://chino-in:8080(从内网访问)
给摒弃掉
方法一:
去down一个PHP for IIS的版本(不可行,apache上项目是单独做为一个站点的项目,所以项目中的相对路径是相对于根站点的(即时建一虚拟目录存放PHP项目把IIS默认站点的主路径设为PHP项目的路径也不敢保证不影响其它虚拟目录下的项目))
方法二:
it's easy , using httphandler (我想这个地球人都知道)
using System.Web;
namespace ReWrite
{
/// <summary>
/// Urlwrite 的摘要说明。
/// </summary>
public class UrlwriteHttpHandler: IHttpHandler
{
public UrlwriteHttpHandler()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public void ProcessRequest(HttpContext context) {
HttpResponse Response = context.Response;
HttpRequest Request = context.Request;
string url=Request.UserHostAddress;
if(url.IndexOf("192.168")>-1||url.IndexOf("127.0")>-1)
Response.Redirect("http://chino-jin:8080");
else
Response.Redirect("http://www.ggyy.com:8080");
Response.End();
}
// 重写接口的属性
public bool IsReusable {
get { return true; }
}
}
}
web.config文件中加条配置如下:
<httpHandlers>
<add verb="*" path="default.aspx" type="ReWrite.UrlwriteHttpHandler,ReWrite"/>
</httpHandlers>
release项目后在IIS上建一虚拟目录XX启用默认文档为default.aspx
testing url:http://www.ggyy.com/xx
Result:请求的项不存在或报拒绝访问
testing url:http://www.ggyy.com/xx/default.aspx
Result:请求被正常重定向到apache上
晕死,静下来一想,用这种URL请求时当然会找不到了(因为在站点目录下根本没有默认的文档)
那这种呢:
在web.config修改下配置
把<authentication mode="Windows" />改为
<authentication mode="Forms">
<forms name="aspxcookie" loginUrl="default.aspx" protection="All" timeout="30" >
</forms>
</authentication>
依然不行,呵呵,看来这种不标准的URL请还是不成
那就只有实做default.aspx页面喽....略
(正在写POST这篇随笔时领导特意过来告诉偶可以先回家收拾下了
祝大家新年快乐,合家欢乐!!!!!!!!)
floer于2005.1.25 15:04