Reputation: 3
Need to redirect requests sent to, for instance, sub domain auto.domain.int to www.domain.int/doc/sample-rates. It is a Zend application so MVC is used. I have the following in my .htaccess conf:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^auto\.domain\.int$
RewriteRule ^.*$ /doc/sample-rates [PT,L]
The thing is, when I put a name of a real file on filesystem as the RewriteRule substitution, lets say 'script.php', it all works well. The content of the script.php file served under the auto.domain.int hostname.
On the other hand when I put an MVC route as the RewriteRule substitution I got 500 error from apache for '/doc/sample-rates' path and 400 error for 'http://www.domain.int/doc/sample-rates' path and several lines in apache log:
127.0.0.1 - - [04/Mar/2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8][rid#b6d75058/initial] (3) [perdir /var/www/domain/base/www.domain.com/htdocs/] strip per-dir prefix: /var/www/domain/base/www.domain.com/htdocs/ -> 127.0.0.1 - - [04/Mar/2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8][rid#b6d75058/initial] (3) [perdir /var/www/domain/base/www.domain.com/htdocs/] applying pattern '^.*$' to uri '' 127.0.0.1 - - [04/Mar/2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8][rid#b6d75058/initial] (2) [perdir /var/www/domain/base/www.domain.com/htdocs/] rewrite '' -> '/doc/sample-rates' 127.0.0.1 - - [04/Mar/2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8][rid#b6d75058/initial] (2) [perdir /var/www/domain/base/www.domain.com/htdocs/] forcing '/doc/sample-rates' to get passed through to next API URI-to-filename handler 127.0.0.1 - - [04/Mar/2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8][rid#b6d75058/initial] (1) [perdir /var/www/domain/base/www.domain.com/htdocs/] internal redirect with /doc/sample-rates [INTERNAL REDIRECT] 127.0.0.1 - - [04/Mar/2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8][rid#b6d67018/initial/redir#1] (3) [perdir /var/www/domain/base/www.domain.com/htdocs/] add path info postfix: /var/www/domain/base/www.domain.com/htdocs/doc -> /var/www/domain/base/www.domain.com/htdocs/doc/sample-rates 127.0.0.1 - - [04/Mar/2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8][rid#b6d67018/initial/redir#1] (3) [perdir /var/www/domain/base/www.domain.com/htdocs/] strip per-dir prefix: /var/www/domain/base/www.domain.com/htdocs/doc/sample-rates -> doc/sample-rates 127.0.0.1 - - [04/Mar/2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8][rid#b6d67018/initial/redir#1] (3) [perdir /var/www/domain/base/www.domain.com/htdocs/] applying pattern '^.*$' to uri 'doc/sample-rates' 127.0.0.1 - - [04/Mar/2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8][rid#b6d67018/initial/redir#1] (2) [perdir /var/www/domain/base/www.domain.com/htdocs/] rewrite 'doc/sample-rates' -> '/doc/sample-rates' 127.0.0.1 - - [04/Mar/2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8][rid#b6d67018/initial/redir#1] (2) [perdir /var/www/domain/base/www.domain.com/htdocs/] forcing '/doc/sample-rates' to get passed through to next API URI-to-filename handler 127.0.0.1 - - [04/Mar/2013:10:50:19 --0500] [auto.domain.int/sid#b73cd9d8][rid#b6d67018/initial/redir#1] (1) [perdir /var/www/domain/base/www.domain.com/htdocs/] internal redirect with /doc/sample-rates [INTERNAL REDIRECT]
Updated: auto.domain.int is an alias for the "main" www.domain.int using ServerAlias.
Thanks,
Eugene
Upvotes: 0
Views: 655
Reputation: 74028
You must add an additional RewriteCond
to prevent an endless rewrite
RewriteCond %{HTTP_HOST} ^auto\.domain\.int$
RewriteCond %{REQUEST_URI} !^/doc/sample-rates$
RewriteRule ^.*$ /doc/sample-rates [PT,L]
Upvotes: 1