當沒有.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 pattern
,RewriteCond => not-matched
和pass through
),但它只是停止。
對於那些傾向於問「你爲什麼這樣做?」有兩個原因1)我收到了付款,2)我們正在將一些ajax .phtml
請求遷移到新的ajax .json
系統,因此如果用戶請求old_directory
中的文件以首先通知他們變化。謝謝。
我知道這是簡單的東西。謝謝。 –