2011-04-26 82 views
9

更改根文件夾我有一個域名和根文件夾(糾正我,如果是這樣的錯誤術語)設置爲/相關聯的共享託管帳戶,以便服務器上的所有文件都是公開/通過瀏覽器訪問。通過的.htaccess

我可以使用的.htaccess什麼的根文件夾更改爲類似/example.com/public/

回答

21

如果我理解正確,下面應該工作

RewriteEngine On 

RewriteCond %{REQUEST_URI} !^/public/ 
RewriteRule ^(.*)$ /public/$1 [L,R=301] 

這將重定向不/public/開始URL,做的所有請求。

希望有所幫助。

+0

謝謝,@clmarquart!如果我們需要保持'/ example.com /'去'/ example.com/index.html'或'/ example.com/index.php'? – moey 2011-11-14 16:12:11

+0

在RewriteCond之前添加RewriteBase /也很有好處。特別是如果您使用VirtualDocumentRoot指令。 – zmonteca 2013-03-28 17:51:16

+0

謝謝它幫助... – 2014-09-03 22:51:24

5

這是我一直用它在我的框架:

Rewritecond %{REQUEST_FILENAME} !-f 
RewriteRule (.*) /example.com/public/$1 [L,NC] 

RewriteCond %{REQUEST_URI} ^/$ 
RewriteRule !^example.com/public/(.*) /example.com/public/$1 [L,NC] 
+0

它沒有對我的工作... – 2014-09-03 22:52:25

0

我用BlueHost的......這對我來說是什麼在起作用: 當你在共享主機,並且有多個域名,這是很有幫助名。

您的主域設置到public_html但你的附加域裏面的public_html

子文件夾這使得它,這樣你就不必把所有的主域名的文件與混合附加域文件夾...每個域名可以在自己的文件夾中...

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(www.)?PUTYOURDOMAINNAMEHERE.com$ 
RewriteCond %{REQUEST_URI} !^/PUTYOURFOLDERHERE/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /PUTYOURFOLDERHERE/$1 
RewriteCond %{HTTP_HOST} ^(www.)?PUTYOURDOMAINNAMEHERE.com$ 
RewriteRule ^(/)?$ PUTYOURFOLDERHERE/ [L] 
Options +SymLinksIfOwnerMatch