Jinendra Khobare
Jinendra Khobare

Reputation: 131

htaccess rewriting subdomain to a folder

I want to rewrite my main domain to a path and if no query is appended then to a different path. I have a wildcard C name in place to support subdomains.

www.xxx.com => works normally

abc.xxx.com => point to a folder

abc.xxx.com/abc-xyz => point to www.xxx.com and should work normally

This is what i have right now :

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    RewriteCond %{HTTP_HOST} !^([w]{3,3}[.]{1,1}){0,1}example.com$
    RewriteCond %{HTTP_HOST} ^([0-9a-zA-Z-]*)[.]example.com$
    RewriteRule ^$ portfolio/index.php?pageDetailId=%1 [NC,L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]

    RewriteCond %{HTTP_HOST} !^([w]{3,3}[.]{1,1}){0,1}example.com$
    RewriteCond %{HTTP_HOST} ^([0-9a-zA-Z-]*)[.]example.com$
    RewriteRule ^(.*)$ $1?pageDetailId=%1 [QSA,L]
</IfModule>

As we can see, i need that abc as variable in abc.example.com/abc-xyz. Please reply with doubts with any, i tried many ways its not working. This same htaccess works on 1 domain smoothly but when i created a new domain its not working on that. Thanks.

NOTE: It works on httpd but not on apache2

Upvotes: 0

Views: 96

Answers (1)

anubhava
anubhava

Reputation: 786081

Have it like this:

Options +FollowSymlinks
RewriteEngine On

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} ^(?!www\.)([\w-]+)\.example\.com$ [NC]
RewriteRule ^(index\.php)?$ portfolio/index.php?pageDetailId=%1 [NC,L,QSA]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteCond %{HTTP_HOST} ^(?!www\.)([\w-]+)\.example\.com$ [NC]
RewriteRule ^(.+)$ index.php?pageDetailId=%1&/$1 [L,QSA]

RewriteRule ^(.*)$ index.php?/$1 [L,QSA]

Upvotes: 1

Related Questions