urlrewrite不起作用。2个域名指向同一个IP下的同一个项目。

新手上路,请多包涵

网站分前台和后台,有2个域名。

输入 域名1 访问前台
输入 域名2 访问后台

可是我浏览器输入之后只能看到

“该网页无法正常运作”

项目是没有问题的,我一开始不用域名,绑定IP是可以访问的,现在使用了域名之后就不知道该怎么办了,也看不到报错信息,配置如下

使用的nginx

1.在nginx 中conf.d

server_name  域名1 域名2;

2.WEB-INF 下的 web.xml

<filter>
        <filter-name>UrlRewriteFilter</filter-name>
        <filter-class>
            org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
        </filter-class>
        <init-param>
            <param-name>logLevel</param-name>
            <param-value>WARN</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>UrlRewriteFilter</filter-name>
        <url-pattern>/*</url-pattern>
            <dispatcher>REQUEST</dispatcher>
               <dispatcher>FORWARD</dispatcher>
    </filter-mapping>

3.urlrewrite.xml如下

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"
        "http://tuckey.org/res/dtds/urlrewrite2.6.dtd">
<urlrewrite>
    <rule>
        <note>后台登录</note>
         <condition type="server-name">域名2</condition>
        <from>^/admin/index.html$</from>
        <to>/admin/login.htm</to>
    </rule>
    <rule>
        <note>前台首页</note>
        <from>^/$</from>
        <to>/index.html</to>
    </rule>

</urlrewrite>

4.tomcat下conf目录下server

      <Host name="域名1" appBase="项目名称" unpackWARs="true" autoDeploy="true">
          <Alias>域名2</Alias>  
 </Host>

求教各位是哪个地方出了错,还是我贴的不够。

阅读 1.8k
1 个回答
server_name 域名1 域名2;

这步明显有问题. 这个配置文件的其余部分是怎么写的呢? 两个域名写在一起了, 反向代理规则怎么配也没法指向两个项目吧. 你的这种写法, 是要让两个域名都对应到一个 ip 上, 比如 this.is.mysite.comthis.is.also.mysite.com 都可以访问到同一个网站上.
为了实现你的既定目标, 可以为两个项目分别写一个 project.conf 出来, 然后放在 nginx 目录下的 conf/include 目录下. 两个 *.conf 文件分别代理到两个 ip 上就可以了. 具体操作方法还需要具体问题具体对待 (意思是, 建议自己查一下 nginx 配置规则).

另外, nginx 也提供了 rewrite 规则, 如果真的需要重定向, 把 rewrite 写在 nginx 里面会比写在 tomcat 等服务器配置里快的多.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题