2013-10-03 55 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,文件夹....我无法创建这些文件夹。 –