PHP-CGI & ERROR 404
- From
- Yaroslav Tchayckovsky (2:5076/1.1)
- To
- All
- Date
- 2006-12-12T13:52:42Z
- Area
- RU.UNIX.BSD
Привет, All!
Проблема стандартная, php-cgi при передаче ему несуществующего скрипта через action апача, возвращает свою 404 - No input file specified, полностью игнорируя Errordocument апача. После долго гугления нашел единственный работающий способ через mod_rewrite:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/phpfcgi/php.*$
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule ^.+\.php$ /customerrorpage.html
Но по вполне понятным причинам такой способ не работает с директивой апача Alias. Если какой-нибудь более универсальный метод обхода данной проблемы под апач 1.3.хх? Делать двойное преобразование в mod_rewrite под каждый alias, не улыбается ни разу. Т.е. каким образом можно проверить php скрипт на существование (уже после обработки его Alias) перед передачей его php-cgi?
Под второй апач этот вопрос красиво решается через output filter, или через похожий механизм mod_security. В ngnix кажется есть воркараунд. Даже в долбаном IIS есть чекбокс - проверка скритпа на существование перед передачей его интепретатору. Неужели под 1.3.хх по человечески этот вопрос не решается?
php-cgi 4.4.4
apache 1.3.37
mod_fastcgi 2.4.2
Yaroslav
--- GoldED+/W32-MSVC 1.1.5-b20051208 (WinNT 5.1.2600-SP2 iP-IV)
* Origin: Anchor Field BBS Textmode Point Package (2:5076/1.1)
SEEN-BY: 50/12 400/814 450/1024 5000/5000 5011/13 5012/46 5015/28 5019/26
SEEN-BY: 5020/400 545 2238 2395 2871 4441 5021/29 5025/3 5027/12 5030/1080
SEEN-BY: 5030/1957 5035/38 5045/7 5054/1 4 8 9 11 28 35 36 37 45 66 67 70 75
SEEN-BY: 5054/84 85 5059/9 5062/10 5063/3 5064/7 5076/1 14 5077/70 5080/1003
SEEN-BY: 5084/9 5085/13 5095/20 5096/18 6001/10
PATH: 5076/1 5020/545 5054/1 37