我有一個.htaccess文件如下:Apache據說忽略htaccess指令?
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteCond %{REQUEST_FILENAME} !admin\.php$
RewriteCond %{REQUEST_FILENAME} \.php$
RewriteRule ^.*$ - [G]
RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
什麼是應該做的,是如果該文件是一個有效的文件沒有什麼應該發生(該文件應該被正常處理) - 此工程。
接下來,如果文件的擴展名是.php,但不是admin.php,那麼它應該返回410 Gone狀態。這不起作用 - 它總是轉到下一個指令,而第二個塊被忽略。
示例URL:http://<my site>/file.php
- 不返回410,轉到最後的指令。
這是怎麼發生的?
(另外,我不認爲計算器是這個問題的網站,但我想不出是什麼:/)
編輯:我也許應該指出的是,這工作正常在我的Windows本地主機,但不是在我的現場Linux服務器上。
編輯2:它仍然不能在我的活箱上工作,點逃脫。如果我將第二個塊移到第一個塊上面,那麼所有東西都會被放棄。
你忘了不幸逃避'的RewriteCond%{} REQUEST_FILENAME期間.PHP $' –
@PatrickEvans,它仍然無法工作,即使在轉義點之後( –