2017-10-16 153 views
1

首先,的.htaccess重定向到另一個文件夾,但保留原來的域名

'example.com'結構域與'/home/defaultfolder/'文件夾。

我想用的.htaccess到

example.com , www.example.com 

重定向到

/home/somefolder/example/,不/home/defaultfolder/文件夾

。 (均爲DocumentRoot的目錄內)

也一樣

a.example.com 

子域

/somefolder/example/a/ 

但保留 'example.com' 域。

我在網上嘗試過一些例子,但沒有任何事情可以做到。

我該如何編寫.htaccess來做到這一點?謝謝。

當然,我不能更改服務器設置(如別名虛擬主機..),這就是爲什麼我試圖通過修改文件來做到這一點。


我已經試過

RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC] 
RewriteRule /somefolder/example/$1 [R=301,NC,L] 

RewriteCond %{HTTP_HOST} ^(www.)?example.com$ 
RewriteRule !^/somefolder/example/ /somefolder/example/1%{REQUEST_URI} [L] 


RewriteCond %{HTTP_HOST} ^/?(?:www\.)?example.com 
RewriteRule ^(.*)$ /somefolder/example/$1 [R=permanent,L] 

和其他一些..

+0

向我們展示你的企圖,以便我們可以給你的建議。 – kmoser

+0

@anubhava那麼如果路徑在DocumentRoot中?我如何管理它? – klados

+0

但是請注意,如果'/ home/defaultfolder /'是您的站點根目錄,則'/ home/somefolder /'被視爲在'DocumentRoot'之外。 「DocumentRoot」路徑中只能考慮'/ home/defaultfolder/somefolder /'。 – anubhava

回答

1

有它這樣的/home/.htaccess(站點根目錄):

RewriteEngine On 

# handle example.com 
RewriteCond %{ENV:REDIRECT_STATUS} ^$ 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(example)\.com$ [NC] 
RewriteRule .* somefolder/%1/$0 [L] 

# handle any sub.example.com 
RewriteCond %{ENV:REDIRECT_STATUS} ^$ 
RewriteCond %{HTTP_HOST} ^([^.]+)\.(example)\.com$ [NC] 
RewriteRule .* somefolder/%2/%1/$0 [L] 
+0

差不多完美!只有當我嘗試訪問子域網站時,「在此服務器上未找到請求的URL /somefolder/subname./」。顯示。時期 。 '很重要。試圖修改,但不能。 – klados

+0

對不起,我在第二條規則中犯了一個錯誤。現在就試試。 – anubhava

+1

這是答案。非常感謝! – klados

0

我想你應該修改服務器的設置,使域名根文件夾到你想要的東西。

+0

我沒有驗證來修改服務器端設置 – klados

+0

您正在使用cPanel嗎?或xampp等? – Samson

+0

我的託管服務提供商沒有許可這些功能。 – klados

相關問題