I am using Cakephp framework 2.2.2.
I want to create a personalized URL for the user. For example, if a user enters username=pragnesh, then they can access my site like: http://pragnesh.mylocalhost.com, same as in blinksale.com
My URL: http://mylocalhost.com/test/users/front_home
I want to access it at: http://test.mylocalhost.com/users/front_home
My URL: http://mylocalhost.com/test/setting/pages
can be accessed at: http://test.mylocalhost.com/setting/pages
any URL: http://mylocalhost.com/test/xxxxx/xxxxx
can be accessed at : http://test.mylocalhost.com/xxxxx/xxxxx
OR
URL: http://mylocalhost.com/users/front_home?site=test
I want to access it at: http://test.mylocalhost.com/users/front_home
My URL: http://mylocalhost.com/setting/pages?site=test
can be accessed at: http://test.mylocalhost.com/setting/pages
any URL: http://mylocalhost.com/xxxxx/xxxxx?site=test
can be accessed at: http://test.mylocalhost.com/xxxxx/xxxxx
My question may be possible duplicate of My cakephp 2.2 site not working on subdomain but there is no answer posted.
I have tried below code in \app\webroot.htaccess
htaccess subdomai (part 2)
RewriteCond %{QUERY_STRING} !^([^&]*&)*site=[^&]+
RewriteCond %{HTTP_HOST} !^www\.mylocalhost.com
RewriteCond %{HTTP_HOST} ([a-zA-Z0-9]+)\.mylocalhost.com
RewriteRule ^([^\.]*).php$ /$1.php?user=%1 [QSA,L,R]
URL rewrite for Subdomain
# capture first part of host name
RewriteCond %{HTTP_HOST} ^([^.]+)\.mylocalhost\.com$ [NC]
# make sure site= query parameter isn't there
RewriteCond %{QUERY_STRING} !(^|&)site= [NC]
# rewrite to current URI?site=backererence #1 from host name
RewriteRule ^ %{REQUEST_URI}?site=%1 [L,QSA]
but both not working for me.
my root .htaccss file is
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
\app.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
\app\webroot.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
Virtual Host in httpd.conf
<VirtualHost *:80>
DocumentRoot "E:/xampp/htdocs/bsale"
ServerName mylocalhost.com
ServerAlias *.mylocalhost.com
<Directory "C:/xampp/htdocs/bsale">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
HOST FILE
127.0.0.1 mylocalhost.com
127.0.0.1 *.mylocalhost.com
You can leave your .htaccess as in the default cakephp/.htaccess cakephp/app/.htaccess cakephp/app/webroot/.htaccess
You will need the virtual host like now have pointing at your app.
What you really need to look at is the app/Config/routes.php
take a look at the line that says:
CakePlugin::routes();
So, before that moment you can do anything you need (with routes). Lets imagine a user johndoe has http://johndoe.yourapp.com/
Get the subdomain from the url, something like this:
array_shift((explode(".",'subdomain.my.com')));
using:
$_SERVER['HTTP_HOST']
Router::connect('/users/front_home', array('controller' => 'users', 'action' => 'front_home', $yourSubDomain));
Or just leave the router alone and detect the subdomain in your AppController, and use it anywhere in your app.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With