以 Rewrite Configuration Guide - Recommended Project Structure for Zend Framework MVC Applications - Zend Framework 提供給 .htaccess 的語法為例:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
簡單來說就是:除了有存在的檔案(-s)或([OR])符號連結(-l)或目錄(-d) 不做更動以外,其它都轉到 index.php 。其中:
- - (第五行) 指不做變動
- NC (No Case) 不分大小寫
- L (Last) 若配對到此規則的話,就不重覆配對接下來的其它規則
若是轉址過來的話, $_SERVER 會多出三個變數:
$_SERVER["REDIRECT_URL"] $_SERVER["REDIRECT_QUERY_STRING"] $_SERVER["REDIRECT_STATUS"]
