2013-10-03 94 views
0

通過將語言添加到我的網站我面臨一個問題。 Becouse我不想從我所有的模板中更改所有的url,但我想將語言保存到我的url中,我需要使用.htaccess。.htaccess如果路徑(文件夾)不存在請求另一個路徑

Basicly問題是folows: - 要保持語言的網址我不得不改變網站的網址: 例如:

無語言:http://www.mysite.com/some/other/vars SITE_URL:http://www.mysite.com

用語言:http://www.mysite.com/cn/some/other/vars改變SITE_URL :http://www.mysite.com/cn

當我對CSS文件SITE_URL/my_style/style.css的請求,obiously的CSS將不會在第2'的情況下發現becouse不是夾CN/

我怎樣才能modyfy的htaccess的更改請求的路徑,如果路徑是:

http://www.mysite.com/cn

http://www.mysite.com/es

http://www.mysite.com/fr

淵源htaccess的內容是:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

Options All -Indexes 
Options All -Indexes 
Options All -Indexes 

謝謝..應該很簡單...但我做不到它從2小時。

編輯:

我想要的是: 如果請求是在做:www.mysite.com/cn/any/thing/else/style.css(在這種情況下,CSS文件不會存在),請在:www.mysite.com/any/thing/else/style.css

是一個漫長的一天沒有進步......哈哈。它發生了。

回答

0

我建議通過請求正確的URL來解決問題!那會是對的。

但是這應該工作

RewriteRule ^(cn|es|fr)/my_style/(.+)$ /my_style/$2 [L] 
+0

它不適合我(我有404)...我發現這個鏈接:http://www.syahzul.com/blogs/item/how-to-rewrite-your-assets-file-location -with-htaccess。有一個很好的例子。我嘗試過,但仍然不能正常工作 –

+0

剛剛在'RewriteEngine On'之後,你把它放在下一行嗎? – Anpher

+0

是的。我添加了這個:RewriteRule ^(cn | es | fr)/ templates/css/frontend /(.+)$/ templates/css/frontend/$ 2 [L]。在我的情況下,CSS文件位於site.com/templates/css/frontend/style.css cn /文件夾不存在,是虛擬的。瀏覽器嘗試從site.com/cn/templates/css/frontend/style.css獲取css。 –

0

最好在這之前你可能沒有任何規則,這個添加到您在cn/es/fr文件夾具有htaccess的文件:

RewriteEngine On 
RewriteCond %{DOCUMENT_ROOT}/$1 -f [OR] 
RewriteCond %{DOCUMENT_ROOT}/$1 -d 
RewriteRule ^(.*)$ /$1 [L] 

這應該使它因此cn文件夾中對/my_style/style.css的請求將用作文檔根目錄中的一個。

+0

我沒有這些cn,fr,文件夾....我無法創建這些文件夾。 –