1

次の .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 が検索エンジンによって既にインデックス化されているためです。=/

アドバイスありがとうございます。

4

1 に答える 1