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