.htaccess 如果路径(文件夹)不存在,则请求另一个路径


.htaccess if path (folder) doesn't exist request another path

通过将语言添加到我的网站,我遇到了一个问题。因为我不想从我所有的模板中更改我的所有网址,但我想将语言保留在我的网址中,我需要修改 .htaccess .

基本上问题在于: - 为了将语言保留在网址中,我必须更改网站网址:前任:

无语言: 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 时,在 2 种情况下找不到 css,因为 cn/文件夹不在文件夹中

如果路径是:

http://www.mysite.com/cn

http://www.mysite.com/es

http://www.mysite.com/fr

原创内容为:

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

是漫长的一天,没有任何进展...哈哈。它发生了。

我建议通过请求正确的网址来解决问题!那就对了。

但是这应该有效

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

将其添加到 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请求将服务于来自文档根目录的请求。