RewriteCond %{HTTP_HOST} ^(.*)\.(.*)\.com$
RewriteRule ^/(.*) /%2/%1 [P,L]
 On Mar 18, 2012 12:58 AM, "Nala Gnirut" <nala.gni...@gmail.com> wrote:

> Thanks, for the info. Unfortunately the suggested rule does not seem to
> work as expected.
>
> Let me further explain what I'm trying to achieve:
>
> All *.mydomain.com subdomains point to the same /mydomain/ local path as
> DocumentRoot (can't change this behavior due to shared hosting
> restrictions) and I'd like to have
>
> a.mydomain.com -> /mydomain/a (http://a.mydomain.com still shown in
> address bar)
> a.mydomain.com/dir1/ -> /mydomain/dir1 (http://a.mydomain.com/dir1/ still
> shown in address bar)
> b.mydomain.com -> /mydomain/b (http://b.mydomain.com still shown in
> address bar)
> b.mydomain.com/dir2/ -> /mydomain/dir2 (http://a.mydomain.com/dir2/ still
> shown in address bar)
>
> My rule seems to work this way, with the notably exception of links to
> subdirs not containing trailing slash
>
> Thanks in advance.
>
> On Sat, Mar 17, 2012 at 4:03 AM, Igor Cicimov <icici...@gmail.com> wrote:
>
>> RewriteCond %{HTTP_HOST} ^foo\.mydomain\.com$ <http://foo.mydomain.com/>
>>  RewriteCond %{ENV:REDIRECT_STATUS} ^$
>> RewriteRule ^/(.*) /foo/$1 [L]
>>
>> sorry missed the ^ above.
>>
>>
>> On Sat, Mar 17, 2012 at 1:49 PM, Igor Cicimov <icici...@gmail.com> wrote:
>>
>>> 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.gni...@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.
>>>>
>>>>
>>>
>>
>

Reply via email to