我们有几个SEO页面,如:
http://www.example.com/PageOne.html
我们在配置中重定向如:
location = /PageOne.html {
rewrite ^/(.*) /seo.php?id=1 last;
}
问题是用户是否通过键入以下内容来访问此页面:
http://www.example.com/pageone.html
"找不到页面"错误正在显示。大约有500多个seo页面。如何为nginx编写规则以忽略url中的区分大小写?我想为所有网址提供一个通用解决方案。
答案 0 :(得分:0)
专门针对PageOne.html
,您可以执行以下操作:
location ~ /PageOne.html {
return 301 http://www.example.com/pageone.html$1;
}
如果您有多个需要重定向的URI,那么它似乎是is to use Perl的最佳选择:
location ~ [A-Z] {
perl 'sub { my $r = shift; $r->internal_redirect(lc($r->uri)); }';
}
如果您有数百个唯一的URI,如上所述会涉及许多location
块,我会考虑更改您的应用程序以处理小写URI,而不是期望Web服务器处理小写转换。
答案 1 :(得分:0)
这解决了我的问题。可悲的是,有没有与这些问题有关的文章,甚至nginx的不提供用户友好的帮助/教程。
location ~* ^/-PageOne.html {
rewrite ^ /seo.php?page_id=1 last;
}
希望这有帮助!