.htaccess - Redirect subdomain to folder
Asked Answered
I

3

6

This question has probably been asked for over a thousand times, but I've tried so many scripts, and googled so long while finding nothing, I thought, let's just ask.

I simply want m.daltonempire.nl to be redirected to daltonempire.nl/m/ without the user seeing the URL change.

So if m.daltonempire.nl/hello.php is requested, I want the user to keep seeing this URL, while the page given is actually daltonempire.nl/m/hello.php.

Note: I do not want www., so simply http://m.daltonempire.nl

Thanks in advance,

Isaiah v. Hunen

Introspection answered 29/10, 2013 at 16:22 Comment(0)
S
2

I have set CNAME of my sub domain below:

blog.mydomain.com

to my wordpress that installed in folder /blog/ under root directory.

Formerly I need to use this url to call wordpress:

http://blog.mydomain.com/blog/

which is ugly. I have tried many code to redirect:

http://blog.mydomain.com/

to the folder so I can use it as my wordpress url.

Finally I got .htaccess setting that is work:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^blog\.mydomain\.com$
    RewriteCond %{REQUEST_URI} !^/blog/
    RewriteRule (.*) /blog/$1

I have also CNAME other subdomain: http://forum.mydomain.com to mybb installation in folder /forum/mybb/ so the .htaccess need to put [L] on each of RewriteRule code as below.

    RewriteEngine On

    RewriteCond %{HTTP_HOST} ^forum\.tophyips\.info$
    RewriteCond %{REQUEST_URI} !^/forum/mybb/
    RewriteRule (.*) /forum/mybb/$1 [L]

    RewriteCond %{HTTP_HOST} ^blog\.tophyips\.info$
    RewriteCond %{REQUEST_URI} !^/blog/
    RewriteRule (.*) /blog/$1 [L]

In case you want to use the code please don't forget to set the site url and cookie path in the application config file follow to the setting to make the redirection work properly.

Simulacrum answered 31/3, 2015 at 8:11 Comment(0)
M
5

Add this to your .htaccess in your web root / directory

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} ^m\.daltonempire\.nl$ [NC]
RewriteCond %{REQUEST_URI} !^/m(/|$) [NC]
RewriteCond %{REQUEST_FILENAME} !-d # not a dir
RewriteCond %{REQUEST_FILENAME} !-f # not a file
RewriteRule ^(.*)$ m/$1 [L]

The %{REQUEST_FILENAME} conditions would let you access /exists.php and not rewrite it to /m/exists.php. Remove those two if you want to rewrite even if that may potentially override existing files and directories.

Mirandamire answered 29/10, 2013 at 16:27 Comment(3)
Thanks, works like a charm! I've almost given up on this whole rewrite thing, been trying ~10 different ways of doing it and every other way gave me 500 error.Lighting
@Lighting Glad to be of help :)Mirandamire
@RaviKThapliyal can't thank you enough. Excellent explanation!Lourdeslourie
S
4

Try this example:

RewriteCond %{HTTP_HOST} ^([^/.]+)\.example\.com$ 
RewriteCond %1 !^(www|ftp|mail)$ [NC]
RewriteRule (.+)$ "http://example.com/%1" [L,P]

Any requests http://test.example.com will be mapped to http://example.com/test/...

Try googling dynamic subdomain with php and htaccess to get better search results.

Sightread answered 29/10, 2013 at 16:27 Comment(3)
1 year later and when I try Googling dynamic subdomain with php and htaccess I find this question...Warfourd
@Sightread caused an infinite loopLoggins
But it doesnt work for me. Even after correcting it. The fullstop in the square brackets should be escaped, and perhaps the slash tooAccepter
S
2

I have set CNAME of my sub domain below:

blog.mydomain.com

to my wordpress that installed in folder /blog/ under root directory.

Formerly I need to use this url to call wordpress:

http://blog.mydomain.com/blog/

which is ugly. I have tried many code to redirect:

http://blog.mydomain.com/

to the folder so I can use it as my wordpress url.

Finally I got .htaccess setting that is work:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^blog\.mydomain\.com$
    RewriteCond %{REQUEST_URI} !^/blog/
    RewriteRule (.*) /blog/$1

I have also CNAME other subdomain: http://forum.mydomain.com to mybb installation in folder /forum/mybb/ so the .htaccess need to put [L] on each of RewriteRule code as below.

    RewriteEngine On

    RewriteCond %{HTTP_HOST} ^forum\.tophyips\.info$
    RewriteCond %{REQUEST_URI} !^/forum/mybb/
    RewriteRule (.*) /forum/mybb/$1 [L]

    RewriteCond %{HTTP_HOST} ^blog\.tophyips\.info$
    RewriteCond %{REQUEST_URI} !^/blog/
    RewriteRule (.*) /blog/$1 [L]

In case you want to use the code please don't forget to set the site url and cookie path in the application config file follow to the setting to make the redirection work properly.

Simulacrum answered 31/3, 2015 at 8:11 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.