Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: перенос htaccess на nginx  (Прочитано 1156 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн novi4eg

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
перенос htaccess на nginx
« : 22 Июня 2018, 18:21:04 »
Приветствую всех, товарищи помогите решить проблему, излазил кучу форумов и перепробовал разные решения, но так и не смог заставить работать сайт(кроме главной) на nginx. Уже отчаиваюсь забить на него и остаться на apache

конфиг htaccess на текущий момент такой:
# Turn on URL rewriting
RewriteEngine On

# Installation directory
RewriteBase /

# Protect hidden files from being viewed
<Files .*>
Order Deny,Allow
Deny From All
</Files>

# Protect application and system files from being viewed
# RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]


# Redirect to www
RewriteCond %{REQUEST_URI} !robots\.txt$
RewriteCond %{HTTP_HOST} !^www [NC]
RewriteRule .* http://www.%{HTTP_HOST}/$0 [R=301,L]


# Redirect urls with no trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/cm/
RewriteCond %{REQUEST_URI} !^/guide
RewriteCond %{REQUEST_URI} !\.xml$
RewriteCond %{REQUEST_URI} !\.txt$

RewriteCond %{REQUEST_URI} !/$
RewriteRule .+ $0/ [R=301,L]


# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]

AddDefaultCharset utf-8


конфиг на nginx такой:
#redirect to www start
server {
    listen 80;
    server_name test.ru;
    return 301 $scheme://www.test.ru$request_uri;
}
#end

server {
      listen 80;
      root /gopanel/sites/www_test_tu/www;
      index index.php;
      server_name www.test.ru;


# Prevent access to hidden files
    location ~ /\. {
        deny all;
    }

location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_param HTTP_PROXY "";
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;

fastcgi_split_path_info ^(.+?\.php)(/.+)$;
}

#Deny access to Git catalog
location ~ /.git/ {
deny all;
}

#Защититься от запросов к несуществующим файлам
location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
try_files $uri =404;
}

error_page 404 /404.html;
 #my 404
      location = /404.html {
        root /gopanel/sites/www_test_tu/www;
        internal;
    }


}

работает только главная страница, переходы на другие выдают 404
конвертеры которые есть онлайн так же не помогают(их можно не предлагать)

фреймворк используется kohana

Оффлайн MooSE

  • Старожил
  • *
  • Сообщений: 1187
    • Просмотр профиля
Re: перенос htaccess на nginx
« Ответ #1 : 23 Июня 2018, 03:16:51 »
А самостоятельно переписать правила? С виду ничего сложного нет.

Оффлайн novi4eg

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: перенос htaccess на nginx
« Ответ #2 : 25 Июня 2018, 11:24:57 »
Я уже три дня подряд пробую разные решения и так же пробовал писать что-то свое, безуспешно.

Пользователь добавил сообщение 26 Июня 2018, 01:37:45:
Отвечу сам на свой вопрос

server { 
    server_name test.ru;
    rewrite ^ http://www.test.ru$request_uri? permanent;
}

server {
    listen 80;
    server_name www.test.ru;
    root /sites/test_ru/public/www;
    index index.php;

    location ~* \.(jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|ico|css)$ {
        expires max;
    }

    location / {
expires off;
try_files $uri $uri/ @kohana;
    }

    location ~* \.php$ {
        try_files $uri $uri/ @kohana;
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        #fastcgi_param SCRIPT_FILENAME /path/to/fastcgi_script_name;
        include fastcgi_params;
    }

    location @kohana {
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root/index.php;
        include fastcgi_params;
    }
error_page 404 /404.html;
 #my 404
      location = /error-404/ {
        root /sites/test_tu/www;
        internal;
    }


}
« Последнее редактирование: 26 Июня 2018, 01:37:45 от novi4eg »

 

Страница сгенерирована за 0.042 секунд. Запросов: 25.