我一直在測試正則表達式,並得出這樣的結論,即這是迄今爲止發明的最高效的性能殺手。Apache mod_rewrite沒有正則表達式的重寫?
我的問題是,我需要更好的網址和唯一正確的方式來做它似乎是Apaches Rewriterule,但它需要與正則表達式,我想避免這種情況。
任何人都知道,如果可能避免使用正則表達式,如果是,那麼該怎麼辦呢?
使用的是現在什麼IM在.htaccess是:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
我如何擺脫正則表達式的?
您正在處理網絡。相比之下,任何計算都是微不足道的。一些正則表達式編譯後會退化,但您的示例似乎並不是其中之一。 – EJP
你錯了。 Apache中的典型正則表達式評估使用了一個bog標準PCRE引擎,通常需要約0.1 mSec。 Apache可以執行100次文件系統調用,每個調用可能會更長*。讀取.htaccess文件,或者如果VFAT不預緩存通常是〜50毫秒 – TerryE
使用'errordocument',而是如果你不喜歡的正則表達式的任何文件,但我不認爲正則表達式會有任何顯著的負面影響。我寧願將注意力放在那些'-f'和'-d' RewriteCond上。那些需要很慢的IO。而是將靜態文件放在專用文件夾中(例如/斷言)並使用'RewriteCond%{REQUEST_URI}!^/assets /'。 – Gerben