2017-01-26 52 views
0

我有3+的網站,例如:指向同一個目錄重寫URL多個網站指向不同的文件夾

www.example.com/requestedpage 
www.esempio.it/requestedpage 
primer.ru/requestedpage 

所有的網站都指向同一個服務器的目錄。其中有3個目錄:「en」,「it」,「ru」以及本地化的requestedpage。我想在內部重定向這些請求(只有PHP,而不是圖像)到文件夾而不更改URL。所以.com網站從「en」文件夾中讀取頁面 - 「it」,ru - 「ru」文件夾,但用戶不應該看到它。

我嘗試了一些事情,但他們沒有工作..

RewriteCond ^(.+)\.(ru)$ 
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/ru/$1 [NC,L] 

RewriteCond %{HTTP_HOST} ^(.+)\.(ru)$ 
RewriteRule ^(.+)\.php$ ru%{REQUEST_URI} [NC,L] 

RewriteCond %{HTTP_HOST} MYWEBSITE.ru$ [NC] 
RewriteCond %{HTTP_HOST} !ru/ 
RewriteRule ^(.*)$ /ru/$1 [NC,L] 

經過大量的測試和感謝anubhava幫助下,我找到了一種方法來處理它,沒有很好的辦法,我認爲這應該加以改進:

# ===== MULTILANGUAGE WEBSITES ===== 
#Rule for IT website 
RewriteCond %{HTTP_HOST} !ITALIANDOMAIN\.it$ 
RewriteRule .* - [S=3] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/([^/]+)$ it/$1/$2 
RewriteRule ^([^/]+)$ it/$1 
RewriteRule ^$ it/ [NC,L] 

#Rule for FR website 
RewriteCond %{HTTP_HOST} !FRANCEDOMAIN\.com$ 
RewriteRule .* - [S=3] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/([^/]+)$ fr/$1/$2 
RewriteRule ^([^/]+)$ fr/$1 
RewriteRule ^$ fr/ [NC,L] 

#Rule for RU website 
RewriteCond %{HTTP_HOST} !(RUSSIANDOMAIN1\.com)$ 
RewriteCond %{HTTP_HOST} !(xn--10-olc1a0ag\.xn--p1ai)$ 
RewriteRule .* - [S=3] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/([^/]+)$ ru/$1/$2 
RewriteRule ^([^/]+)$ ru/$1 
RewriteRule ^$ ru/ [NC,L] 

回答

0

您可以使用此規則從放置it, en, ru文件夾的父文件夾內的.htaccess:

RewriteEngine On 

# skip all files and directories 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 

RewriteCond %{HTTP_HOST} \.(ru|it)$ 
RewriteCond %{REQUEST_URI} !^/(?:ru|it)/ [NC] 
RewriteRule ^.*$ %1/$0 [L] 

RewriteCond %{HTTP_HOST} \.com$ 
RewriteCond %{REQUEST_URI} !^/en/ [NC] 
RewriteRule ^.*$ en/$0 [L] 
+0

服務器遇到內部錯誤或配置錯誤,無法完成您的請求。我明天會嘗試更多,但刪除我的所有規則,並添加只是它不起作用 –

+0

哇,幾乎。它適用於除請求之外的所有請求,例如:www.example.com/folder/page是否可以在本例中將整個請求重定向到文件夾「en」? :) –

+0

我正在嘗試這一個(適用於測試者),但在服務器上無效:RewriteCond%{HTTP_HOST} \。$ RewriteRule ^([^ /] +)/(。+)$ it/$ 0 [ NC,L] –

相關問題