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

时间:2013-10-03 10:53:50

标签: php .htaccess redirect path

通过将语言添加到我的网站,我遇到了问题。 Becouse我不想改变我所有模板中的所有网址,但我希望将语言保存到我的网址中,我需要使用.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时,很明显在第二种情况下不会找到css因为不在文件夹中cn /

如果路径是:

,我怎么能修改.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/别的/ style.css中

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

2 个答案:

答案 0 :(得分:0)

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

然而,这应该有效

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

答案 1 :(得分:0)

将此添加到cn/es/fr文件夹中的htaccess文件中,最好是在您可能拥有的任何规则之前:

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

这样就可以使/my_style/style.css文件夹中的cn请求服务于文档根目录。