Stok29
@Stok29
Web developer

Как сделать mod_rewrate для сайта?

Добрый день имеется .htaccess
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(js|css|jpeg|jpg|gif|png|ico)(\?|$) - [L,NC,R=404]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>


требуется сделать все это под nginx, сгенерил с помощью wnginx и вставил таким образом (часть из nginx.conf)
location / {

                if (!-e $request_filename){
                rewrite ^(.*)$ /index.php break;
         }

        location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
            expires     max;
        }

        location ~ [^/]\.php(/|$) {
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            if (!-f $document_root$fastcgi_script_name) {
                return  404;
            }

            fastcgi_pass    127.0.0.1:9003;
            fastcgi_index   index.php;
            include         /etc/nginx/fastcgi_params;
        }
    }


        location @rewrite {
                rewrite ^(.*)$ /index.php break;
        }

    error_page  403 /error/404.html;
    error_page  404 /error/404.html;
    error_page  500 502 503 504 /error/50x.html;

    location /error/ {
        alias   /home/mysite/web/talk.mysite.ru/document_errors/;
    }

    location ~* "/\.(htaccess|htpasswd)$" {
        deny    all;
        return  404;
    }

    include     /etc/nginx/conf.d/phpmyadmin.inc*;
    include     /etc/nginx/conf.d/phppgadmin.inc*;
    include     /etc/nginx/conf.d/webmail.inc*;

    include     /home/mysite/conf/web/nginx.talk.mysite.ru.conf*;
}


В итоге получаю 404 ошибку, движок сайта IPB 4.1. Как поправить сие чудо ? Благодарю.
  • Вопрос задан
  • 160 просмотров
Пригласить эксперта
Ответы на вопрос 2
@mihelsonkk
nginx, mysql, unix
Лучший способ - забуриться в документацию.
nginx.org/ru/docs

Попробуйте сделать "трассировку" запроса
nginx.org/ru/docs/http/request_processing.html
Ответ написан
Комментировать
@Ky6uk-Hy6uk
У меня на версии 3.4 при таких настройках все отлично работает
server {
 location / {
            try_files $uri $uri/ /index.php?q=$uri&args;
 }
location ~ \.php$ {
        fastcgi_pass   unix:/var/run/php-fpm/ipboard.sock;
        fastcgi_index  index.php;
        fastcgi_buffers 16 8k;
        fastcgi_buffer_size 16k;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы