httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Igor Cicimov <icici...@gmail.com>
Subject Re: [users@httpd] Issue with trailing slashes after rewrite
Date Sat, 17 Mar 2012 02:49:00 GMT
First SERVER_NAME is apache internal NOT a http header sent with the
request thus will match ANY request. Use HTTP_HOST instead. You also need
to escape the dots in the host name.

Second, from the documentation:

"To combine new and old query strings, use the [QSA] flag."

so by using QSA you are modifying the query string adding another foo to it
thus the result you are seeing.

Finally, your rules should look like:

RewriteCond %{HTTP_HOST} ^foo\.mydomain\.com$ <http://foo.mydomain.com/>
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule /(.*) /foo/$1 [L]

Igor

On Sat, Mar 17, 2012 at 1:40 AM, Nala Gnirut <nala.gnirut@gmail.com> wrote:

> Hi all,
> in a shared hosting with no access to httpd.conf, I'm trying to redirect
> subdomains to different document root using mod_rewrite.
>
> I'm using this rule in a .htaccess file placed in DocumentRoot:
>
> # Change document root for foo.mydomain.com
> RewriteCond %{SERVER_NAME} foo.mydomain.com
> RewriteCond %{ENV:REDIRECT_STATUS} ^$
> RewriteRule .* /foo%{REQUEST_URI} [QSA,L]
>
> This works as expected accessing
>
> foo.mydomain.com
> foo.mydomain.com/
> foo.mydomain.com/bar/
>
> while
>
> foo.mydomain.com/bar
>
> fails as it's redirected to
>
> /foo/foo/bar instead of /foo/bar
>
> Please note that trailing slashes are automatically added to any rule but
> the ones rewritten by this rule.
>
> Where's my fault?
>
> Thanks in advance.
>
>

Mime
View raw message