1
全部, 我是nginx和服务器的新手,我无法处理nginx重写规则。我想小写所有的URL并删除一些字符串。 我有一个电子商务网站,目前的URL结构是这样的:(为了避免被认作计算器链接,我加之间的HTTP和空间:故意)Nginx重写(小写和子串)
product page: http ://www.example.com/Some-Product-pd123456.html
product category: http ://www.example.com/Product-Cat-pl12345.html
page a: http ://www.example.com/About-Us.html
page b: http ://www.example.com/Contactus.html
所以,我想达到的目标是这些:
product page: https ://www.example.com/product/some-product/
product category: https ://www.example.com/category/product-cat/
page a: https ://www.example.com/about-us/
page b: https ://www.example.com/contact-us/
注意到,我的网站会从http到https,而且我有多个页面,如页面(同一模式)和多页面网页一样b(无图案)。这是到目前为止,我做了什么:
//product
location ~ ^http:\/\/www\.example\.com\/(.*)-pd\d{6}\.html$ {
return 301 https://www.example.com/product/$1/;
}
//product category
location ~ ^http:\/\/www\.example\.com\/(.*)-pl\d{5}\.html$ {
return 301 https://www.example.com/category/$1/;
}
//Page a
location ~ ^http:\/\/www\.example\.com\/(.*)\.html$ {
return 301 https://www.example.com/$1/;
}
//Page b
location ~ ^http:\/\/www\.example\.com\/Contactus\.html$ {
return 301 https://www.example.com/contact-us/;
}
所以我的问题是如何先小写的网址,然后应用上面的规则,如果他们是正确的,或让他们在一起更精美,高效,为更好的网站速度?位置顺序是否重要?谢谢你的帮助。
'http:'不是'location'和'rewrite'指令使用的规范化URI的一部分(并且你不需要转义'/'字符)。你有没有考虑用'location〜*'忽略大小写?有关详细信息,请参阅[此文档](http://nginx.org/en/docs/http/ngx_http_core_module.html#location)。 –
嗨,理查德,谢谢你的改正和你提供的链接帮助我很多。我终于找到了解决方案,我将它作为答案发布。 – davidchannal