現在、.htaccess ファイルで次のルールを使用しています。
# Convert URLs with underscores into hyphens (excluding any image files)
# Keep scanning the URL as long as there are two hyphens
RewriteRule ^(/?.*[^/]*?)-([^/]*?-[^/]*)$ $1_$2 [N,QSA]
# Replace last hyphen and do a permanent redirect (ending the rewriting operation)
RewriteRule ^(/?.*[^/]*?)-([^/-]*)$ $1_$2 [L,QSA]
しかし、私たちのウェブホストは次の苦情で私たちのサイトを閉鎖しています:
この問題を追跡したところ、最初のルールで N の FLAG の書き換えがループしていることがわかりました。これにより、プロセスごとに数百 MB のメモリを使用するプロセスが生成されるため、無限ループとして何時間も実行され、サーバーのリソースを食い尽くすプロセスが作成されました。
mod_rewrite の専門家で、これを行うためのより良い方法を知っている人はいますか?
ファイル内のすべてのアンダースコアを URL のダッシュに置き換えようとしているだけです。残念ながら、ファイル名にダッシュを含むファイルを生成できないソフトウェアを使用しています。
とても有難い!
ありがとう、ダグ