- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день.
Подскажите пожалуйста.
Есть сайт, работает хорошо, с недавних пор понадобилось из одной директории сайта сделать редирект на index.php этой диретокрии от несуществующих файлов/директорий в ней.
В апаче все просто, в директории сайта api создаешь .htaccess с таким содержимым.
Конфиг nginx.
server {
listen 1.0.1.2:80;
root /usr/local/www/default;
}
server {
listen 1.0.1.2:80;
server_name www.ru;
error_log /var/log/nginx/www.error_log info;
root /usr/local/www/www.ru/web;
index index.php index.html index.htm default.html default.htm;
open_file_cache max=15024 inactive=60s;
open_file_cache_valid 300s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/tmp/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
# fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_ignore_client_abort off;
try_files $uri =404;
}
location /pma/ {
alias /usr/local/www/phpMyAdmin/;
index index.php;
auth_basic "closed site";
auth_basic_user_file /usr/local/.htpasswd;
location ~ \.php$ {
fastcgi_pass unix:/tmp/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_ignore_client_abort off;
fastcgi_param PHP_ADMIN_VALUE "xcache.cacher=Off";
fastcgi_param PHP_ADMIN_VALUE "xcache.stat=Off";
fastcgi_param PHP_ADMIN_VALUE "xcache.optimizer=Off";
}
}
location /api {
index index.php;
try_files $uri $uri/ /api/index.php?$args;
}
location ~ /\.(ht|svn|git) {
deny all;
}
}
При таком варианте как index,php открывается, но ошибка 500.
Так же пробовал и такой варинат.
При таком вовсе не работает.
location /api/ {if (!-e $request_filename){
rewrite ^(.*)$ /index.php;
}
}
Подскажите, как быть. как лучше сделать?
Спасибо за понимание.
Попробуйте так:
location /api/ {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php last;
}
}
у себя проверил, всё работает.
Попробуйте так:
location /api/ {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php last;
}
}
у себя проверил, всё работает.
не работает.
Not Found (#404)
Страница не найдена.
лог акцесс.
bagas1 такой директории не существует.
редирект на индексный файл директории api не произошел.
А изначально файл запрашивается откуда?
http://домен/assets/2be214d1/yii.js
Попробуйте так:
location /api/ {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php last;
}
}
у себя проверил, всё работает.
такой вариант работает, нужно смотреть почему у Вас не работает
вместо try_files и ifов наверное стоит попробовать через error_page
http://nginx.org/ru/docs/http/ngx_http_core_module.html#error_page