Using .htaccess to set a sub directory as root directory

.htaccess, directory, php, root, url-rewriting

Solution

If you want to keep the 'href="/css/layout.css"' part, then yes, you can set up a rewrite rule. You just have to be careful not to redirect anything starting with /testsite (or you'll end up with a loop).

Like (in root .htaccess):

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/testsite/.*$
RewriteRule ^(.*)$ /testsite/$1 [QSA,L]

There, you will be able to access your layout.css file either from:

http://localhost/testsite/css/layout.css

or

http://localhost/css/layout.css

Problem

Is there a way to use htaccess to tell a subdirectory to act as the root for the entire site? For example, if I had a website under http://localhost/testsite/ and in it's index.php file I had a reference to the stylesheet using the following code.. ``` <link rel="stylesheet" type="text/css" href="/css/layout.css" /> ``` Could I then make that load /localhost/testsite/css/layout.css? To get around this problem, I set up localhost subdomains for each site which although works, is not ideal. Many thanks.

Original source