Mobile app version of vmapp.org
Login or Join
Radia820

: Using Apache's rewrite module to set up local host names for development I have several websites on my development machine under Apache's htdocs folder. Apache Directory root is htdocs, but I

@Radia820

Posted in: #Apache2 #Htaccess #ModRewrite

I have several websites on my development machine under Apache's htdocs folder. Apache Directory root is htdocs, but I want to be able to access each different site there by individual domain names. For example, I have

htdocs/dev_site_com
htdocs/cre_site_com


I have added these lines to my hosts file

127.0.0.1 dev.site.localhost

127.0.0.1 cre.site.localhost


Now I want to add an .htaccess file in the htdocs to redirect dev.site.localhost request to htdocs/dev_site_com or 127.0.0.1/dev_site_com

I want to do this so that all of my relative URLs in my site work locally. If I link to a stylesheet in the dev_site_com site using the path /css/style.css, it will work in production, but not in development, because the root is htdocs and not htdocs/dev_site_com

I've never been good with mod_rewrite.. but this is what I have so far..

<IfModule mod_rewrite.c>

Options +FollowSymLinks
RewriteEngine on

RewriteCond %{REQUEST_URI} ^dev.site.localhost
RewriteRule %1 [L]

</IfModule>


and nothing is happening

10.01% popularity Vote Up Vote Down


Login to follow query

More posts by @Radia820

1 Comments

Sorted by latest first Latest Oldest Best

 

@BetL925

You would not usually use rewrite rules to set up different host names on a local server. Instead you would edit your Apache configuration and set up new virtual hosts.

<VirtualHost *:80>
DocumentRoot /var/www/htdocs/dev_site_com
ServerName dev.site.localhost
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /var/www/htdocs/cre_site_com
ServerName cre.site.localhost
</VirtualHost>


You don't say what type of operating system you are running. If I were doing this on my Ubuntu Linux server I would created two files:


/etc/apache2/sites-available/dev
/etc/apache2/sites-available/cre


That contain the the virtual host directive for each site respectively, then I would enable each site with the command a2ensite and restart Apache: sudo a2ensite dev && sudo a2ensite cre && sudo service apache2 restart. Here is a full guide to virtual host setup on Ubuntu.

10% popularity Vote Up Vote Down


Back to top | Use Dark Theme