【发布时间】:2011-07-23 05:43:26
【问题描述】:
我正在编写一个多语言网站。因此,我需要一些有关 URL 重写问题的帮助。
案例:
- 当有人访问 www.example.com 而不添加国家/地区代码(nl、en、de)时,htaccess 会将访问者重定向到 www.example.com/nl/ i.g.
RewriteRule !(nl|en|de)(.*).* /nl/ [R=301,L] - 该网站已更新,并且有许多指向该网站(谷歌、论坛)的 url。例如www.example.com/oldpage-nomore.html。我想要的是以下内容; htaccess 应该检测到请求 uri 不包含 nl、en 或 de,并且应该重定向到 pagenotfound.php。
RewriteRule ^(.*)\.html /public/oldurl?section=nl&notfound=$1$2&basehref=true&%1 [PT,L]这个重写规则的问题是:所有以 .html 结尾的文件都被重定向了。
我正在寻找的是以下内容:
- 当有人访问 www.example.com 并且没有输入请求 uri 时,这应该重定向到 www.example.com/nl/
- 当请求的 uri 不包含国家代码 (nl|en|de) 时,重定向到 pagenotfound.php
我尝试了以下方法,但它不起作用:
RewriteCond %{REQUEST_URI} !^(nl|en|de)$
RewriteRule ^([a-z]{2})/(.*)\.html$ /pagenotfound.php?page=$2 [L,R=404]
我希望有人可以提供帮助。 提前谢谢你。
【问题讨论】:
标签: .htaccess mod-rewrite