2011-06-23 26 views

回答

2

你必須測試,如果尚未改寫:

RewriteCond %{REQUEST_URI} !^seoparser\.php$ [NC] 
RewriteRule ^/?(.*)$  /seoparser.php?$1 [L] 
0

您可以檢查是否請求的資源是不是一個文件/目錄,然後才改寫。例如:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) /seoparser.php?$1 [QSA,L] 

根據具體情況(你在什麼地方重寫邏輯/需要實現)這可能是比@inti提到的更好的解決方案。你會看到很多實際應用(例如WordPress,Magento)和PHP框架(大多數時候他們只有內部路由邏輯)中使用的規則組合。

這有點不同的方法(主要是從視圖組織點):

RewriteEngine On 
# Do not do anything for already existing files 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule .+ - [L] 

# Your rewrite rules (file/folder does not exist, we may need to route it elsewhere) 
RewriteRule (.*) /seoparser.php?$1 [QSA,L]