私は正規表現をテストしており、これがこれまでに発明された最も効率的なパフォーマンスキラーであるという結論に達しました。Apache mod_rewrite正規表現なしのリライト
私の問題は、私のサイトのためのより良いURLが必要であり、それを行う唯一の正しい方法はApaches Rewriteruleと思われるが、それは正規表現で使用する必要があり、私はこれを避けたいと思います。
正規表現の使用を避けることができるかどうかは誰でも知っています。 .htaccessファイルに今使って何イム
は次のとおりです。
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
どのように私は正規表現を取り除くのですか?
あなたはネットワークを扱っています。これと比較すると、計算は重要ではありません。いくつかの正規表現はコンパイルしてケースを縮退しますが、あなたの例はそれらの1つではありません。 – EJP
あなたは間違っています。 Apache内の典型的な正規表現評価では、bogの標準PCREエンジンが使用され、通常は〜0.1 mSecです。 Apacheは、それぞれが* far *長くなることができる100sのファイルシステム呼び出しを行います。 VFATがキャッシュされていない場合、.htaccessファイルやファイルを読むのは通常〜50mSecです。 – TerryE
正規表現が気に入らないのであれば、代わりに 'errordocument'を使いますが、RegExに重大な悪影響はないと思います。むしろそれらの '-f'と' -d'RewriteCondに焦点を当てたいと思います。それらは非常に遅いIOを必要とします。静的ファイルを専用フォルダ(例えば/ assert)に置き、 'RewriteCond%{REQUEST_URI}!^/assets /'を使用してください。 – Gerben