すべて、 私はnginxとサーバーに新しいです、私はnginx書き換えルールに対処するのに問題があります。私はすべてのURLを小文字にして文字列を削除したい。 I eコマースウェブサイトを持って、現在のURL構造はこれらのようなものです:私が達成したいものをそう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
、(目的にstackoverflowのことで、リンクとして認識されるのを避けるために、私はhttpとの間にスペースを追加)これらです:
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/;
}
をだから私の質問は、より良いウェブサイトの速度のため、最初のURLを小文字、その後、それらが正しい場合には、これらの上記の規則を適用する、またはそれ以上うまくかつ効率的にそれらを一緒に取得する方法です?ロケーションの順序は重要ですか?助けてくれてありがとう。
'http:'は 'location'と' rewrite'ディレクティブで使用される正規化されたURIの一部ではありません( '/'文字をエスケープする必要はありません)。代わりに 'location〜* 'で大文字小文字を無視することを考えましたか?詳細については、[このドキュメント](http://nginx.org/en/docs/http/ngx_http_core_module.html#location)を参照してください。 –
こんにちは、リチャード、あなたの訂正に感謝し、あなたが提供したリンクが私を助けます。私は最終的に解決策を見つけました。答えとして投稿します。 – davidchannal