次の .htaccess ルールを使用して、Web サイトの複数の URL を書き換えています。
RewriteEngine On
RewriteRule ^privacy(\w|\s|\+|-|&|;|#)+policy/?$ index.php?page=privacy [NC]
RewriteRule ^([A-Za-z]+)(.*)+foo(\w|\s|\+|-|&|;|#)+bar/?$ index.php?page=$1 [NC]
最初のルールは、「プライバシー ポリシー」ページで効率的に機能します。
ただし、2 番目のルールでは、サーバーの応答時間が著しく低下します。このルールの書き方が原因で、データベースに ([A-Za-z]+) 式をクエリする際に遅延が生じると思います。このルールに適用される正規表現は多数あり、一部の URL には正規表現の後に「余分な」単語が含まれています。例えば:
www.example.com/North+America+Foo+Bar/
データベースに「North」を照会して、URL を次の URL に書き換えます。
www.example.com/index.php?page=North
これがルールに (.*) を含めた理由ですが、これが応答時間の遅さの原因ではないかと懸念しています。複雑です、私は知っています。
このルールを改善してパフォーマンスを高速化するためのアイデアや提案はありますか? www.example.com/Expression+Foo+Bar/ 形式を維持することをお勧めします。これは、何百もの URL が検索エンジンによって既にインデックス化されているためです。=/
アドバイスありがとうございます。