2011-08-03 78 views
0

當沒有.htaccess文件時,我的vhost文件中的以下指令正常工作。但是,當我介紹一個它停止工作。 htaccess重寫爲not-matched時,如何執行vhost重寫?目錄級別.htaccess mod_rewrite停止虛擬主機重寫

vhost.conf

# Skip everything except html and json 
RewriteCond %{REQUEST_URI} \..+$ 
RewriteCond %{REQUEST_URI} !\.(html|json)$ 
RewriteRule .* - [L] 
# If html exists (is cached) 
RewriteRule ^$ index.html [QSA] 
RewriteRule ^([^.]+)$ $1.html [QSA] 
# Otherwise pass it on the index.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php [QSA,L] 

/test/.htaccess

RewriteEngine on 
RewriteCond %{REQUEST_URI} old_directory/.*$ 
RewriteRule (.*)$ old_missing.phtml [PT] 

請求/test/hello.json ...
......不.htaccess:被路由到index.php並返回正確的JSON。
......與.htaccess:返回一個404 Not Found

請求/text/old_hello.phtml ...
......不.htaccess:返回一個404 Not Found
......與.htaccess:返回old_missing.phtml

而且內容,我尾隨我的重寫日誌,它看起來像它應該遵循.htaccess規則(trip per-dir prefix,applying patternRewriteCond => not-matchedpass through),但它只是停止。

對於那些傾向於問「你爲什麼這樣做?」有兩個原因1)我收到了付款,2)我們正在將一些ajax .phtml請求遷移到新的ajax .json系統,因此如果用戶請求old_directory中的文件以首先通知他們變化。謝謝。

回答