Apache多个URL到一个域重定向

时间:2010-05-11 07:51:00

标签: apache url tomcat redirect virtualhost

在过去的两天里,我花了很多时间来解决我的问题,也许有人可以帮助我。

问题:我需要将不同的url重定向到一个用于神器的tomcat webbase-dir。 以下网址应指向tomcat / artifactory webapp:

maven-repo.example.local; maven-repo.example.local / artifactory; SRV-示例/ artifactory的

其中maven-repo.example.local是server-hostname的dns:“srv-example” 我正在通过JK_mod模块访问tomcat应用程序。 webapp位于ROOT目录中 这是我到目前为止所得到的:

<VirtualHost *:80>
   #If URL contains "artifactory" strip down and redirect
   RewriteEngine on
   RewriteCond %{HTTP_HOST} ^\artifactory\$ [NC] 
   # (how can I remove 'artifactory' from the redirected parameters? )
   RewriteRule ^(.*)$ http://maven-repo.example.local/$1 [R=301,L] 

   ServerName localhost
   ErrorLog "logs/redirect-error_log"       
</VirtualHost>

<VirtualHost *:80>
    ServerName maven-repo.example.local
    ErrorLog "logs/maven-repo.example.local-error.log"
    CustomLog "logs/maven-repo.example.local-access.log" common   
    #calling tomcat webapp in ROOT
    JkMount /* ajp13w
</VirtualHost>

webapp正在使用“maven-repo.example.local”,但是使用“maven-repo.example.local / artifactory”tomcat提供了404 - “请求的资源()不可用。” 似乎mod_rewrite没有产生任何影响,即使我重定向到另一个页面,例如google.com

我在Windows 7上测试,在“system32 / drivers / hosts”文件中添加了maven-repo.example.local

提前致谢!

2 个答案:

答案 0 :(得分:0)

非常感谢您的提示@ PHP-Prabhu

一个简单的:

RedirectPermanent /artifactory /.

在apache httpd.conf中做了伎俩!

答案 1 :(得分:-1)

首先,在处理别名之前处理所有重定向,因此与Redirect或RedirectMatch匹配的请求永远不会应用别名。其次,别名和重定向按照它们在配置文件中出现的顺序进行处理,第一次匹配优先

请参阅此网址

http://httpd.apache.org/docs/2.1/mod/mod_alias.html