nginx и javascript/php

Привет!

Пишу проект на kohane, в котором javascript создается динамически через View таким образом, что при запросе /controller/MyScript.js nginx выдает мне 404. Это все ясно, nginx так и долже ноступать, но вот как это обойти?

Вопрос:
Как настроить .htaccess для того, что бы nginx не обрабатывал файлы myscript.js, а передовал их сразу apache
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Эм, тема не в том разделе, если это про настройку сервера. Ты хочешь изменить нормальное поведение сервера, когда статику отдает nginx, а апач уже обрабатывает php?
Да, и .htaccess не имеет отношения к nginx вообще.
 
Эм, тема не в том разделе, если это про настройку сервера. Ты хочешь изменить нормальное поведение сервера, когда статику отдает nginx, а апач уже обрабатывает php?
Да, и .htaccess не имеет отношения к nginx вообще.
Подозревал, что ветка не та и что htaccess тоже не то.
Если знаете решение вопроса, ответьте пожалуйста, а я потом пост перенесу.
 
В принципе, логику я понимаю. Нужно сказать nginx, что бы он игнорировал файлы с расширением *.js. Но вот как это сделать? Есть ли для nginx файл настройки? как htaccess для apache?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Я не совсем понял что тебе надо? Чтобы nginx не выдавал тебе на отсутствующий файл 404? Или что? Если надо первое упомянутое мной предположение, то почему бы просто не поправить руками?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
В принципе, логику я понимаю. Нужно сказать nginx, что бы он игнорировал файлы с расширением *.js. Но вот как это сделать? Есть ли для nginx файл настройки? как htaccess для apache?
Можно просто в разметку инклудить <script type="text/javascript" src="myscript.php"></script> и все будет работать.
 
Я не совсем понял что тебе надо? Чтобы nginx не выдавал тебе на отсутствующий файл 404? Или что? Если надо первое упомянутое мной предположение, то почему бы просто не поправить руками?
Нет, мне нужно, что бы файлы *.js обрабатывал apache. В htaccess прописан rewrite для всех файлов *.js, что бы контент для них выдавал определенный контроллер kohana. Таким образом контроллер kohana строит нужный мне файл javascript и выдает его.
 

michelle

Новичок
Возьми и переделай в nginx.conf location для js файлов

За точность не ручаюсь, но что-то вроде этого
location ~* ^.+\.js$ {
proxy_pass .......
}
 
Можно просто в разметку инклудить <script type="text/javascript" src="myscript.php"></script> и все будет работать.
Можно, только проблема в том, что ExtJS 4 при автолоадинге компонентов автоматически строит пути, и что бы изменить расширение запрашиваемого файла нужно лезть в ядро - НИЗЯ!
 

флоппик

promotor fidei
Команда форума
Партнер клуба
добавить js к локейшену на котором висит пхп
Код:
location ~* \.(php|js)$ {
	fastcgi_pass backend;
}
и убирать js из локейшна с которого обслуживается статика

как-то так)
 
Возми и переделай в nginx.conf location для js файлов

За точность не ручаюсь, но что-то вроде этого
location ~* ^.+\.js$ {
proxy_pass .......
}
nginx.conf не вариант, т.к. нахожусь на хостинге, нужен именно аналог htaccess, что бы разместить его в нужной мне директории
 

michelle

Новичок
nginx.conf не вариант, т.к. нахожусь на хостинге, нужен именно аналог htaccess, что бы разместить его в нужной мне директории
Ну и .... что, совсем нет доступа к nginx.conf?

Тогда проси техподдержку прописать location как надо.
Или попроси ВСЕ запросы перенаправлять на apache.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
>nginx.conf не вариант
может быть, можно заюзать хак - писать путь /js.php/controller/MyScript.js
а в js.php уже подменять $_SERVER и вызывать кохановский генератор
но без изменения конфига nginx тебе будет неудобно

а вообще, да, надо отдельный location прописать в nginx
location ~ ^/controller/\w+\.js${
proxy_pass .......
}

Не надо убирать обработку всех .js из статики, надо четко прописать location для тех js, которые генерятся динамически.
Все запросы перенаправлять на apache не надо.
 

weregod

unserializer
и не забудьте вбить баг ExtJS-овцам, если его нет, о несостоятельности хардкода .js
 
Сверху