Все чаще пользователи обращаются с вопросами о том, почему на сайте работает только главная страница доски объявлений, в то время как другие разделы, такие как страница добавления объявления (add-listing.html), страница регистрации (registration.html) и так далее, недоступны. Данная проблема становится все более распространенной, и мы решили посвятить этому вопросу небольшую статью в нашем дайджесте, чтобы прояснить причины и предложить возможные решения.

Описание проблемы

Опытные пользователи могут заметить, что указанные выше «симптомы» указывают на неправильно настроенный веб-сервер. Мы также напоминаем нашим пользователям, что мы предоставляем информацию о системных требованиях нашего софта, но не несем ответственности за его некорректную работу из-за неправильных настроек сервера. Мы не занимаемся администрированием серверов, но готовы предоставить рекомендации по решению данной проблемы.

А именно проблема неработающих страниц, кроме главной страницы сайта, связана с настройкой веб сервера. Самые распространенные веб сервера  — это Apache и NGINX.

Решение

Чтобы избежать проблемы вам нужно рассмотреть 2 сценария: 1 — если на сервере установлен Apache , 2 — если у вас связка с сервером NGINX.

1.  Если у вас на сервере работает Apache веб-сервер:

— убедитесь, что включен модуль Apache rewrite в админ-панели  > Общие > Базовые настройки > Общие > Модуль Apache > Включить

— на вашем сервере установлен модуль Apache rewrite

— в корневой директории сайта присутствует файл .htaccess

2. Если у вас Nginx веб-сервер:

— убедитесь, что включена опция в админ-панели  > Общие > Базовые настройки > Общие > Модуль Apache > Включить

— убедитесь, что вы добавили в конфигурационный файл* nginx следующие правила (в тексте нужно подставить своё имя домена и корневой путь сайта):

server {

    # … another code …

    server_name

        your-domain.com

        www.your-domain.com

        ~^(?<subdomain>.*)\.your-domain\.com$;

    keepalive_requests 100;

    keepalive_timeout 10s;

    root ${DOCUMENT_ROOT};

    index index.html index.php;

    location / {

        try_files $uri $uri/ @flynax-rewrite;

    }

    location ~* .(jpg|jpeg|gif|png|svg|woff|pdf|swf)$ {

        expires 365d;

    }

    location ~*  \.(css|js)$ {

        expires 93d;

    }

    location @flynax-rewrite {

        rewrite «^/([^//]+)/?(.*)?/index([0-9]*).html$» /index.php?page=$1&rlVareables=$2&pg=$3 last;

        rewrite «^/([^/]+)(/?(.{2,}))?-l?([0-9]+).html$» /index.php?page=$1&rlVareables=$3&listing_id=$4 last;

        rewrite «^/((\w{2})/)?([\w-_]{3,})$» /index.php?page=$3&lang=$2&account_request last;

        rewrite «^/([^//]+)/?(^/*)?.html$» /index.php?page=$1 last;

        rewrite «^/([^//]+)/?(.*)?/?(.*)?(.html|/+)$» /index.php?page=$1&rlVareables=$2 last;

        rewrite «^/^api/v[0-9]+/?.*$» /plugins/api/request.php last;

        rewrite «^/sitemap.xml$» /plugins/sitemap/sitemap.php last;

        rewrite «^/plugins/iFlynaxConnect/api.json$» /plugins/iFlynaxConnect/request.php last;

        rewrite «^/plugins/hybridAuthLogin/(.*)$» /plugins/hybridAuthLogin/requests.php?provider=$1 last;

        rewrite «^/plugins/accountSync/api/v[0-9]+/.+$» /plugins/accountSync/requests.php last;

        return 404;

    }

    # … another code …

}

*Для справки, файл nginx config — это файл, в котором задаётся количество рабочих процессов и определяется вся работа Nginx. По умолчанию, конфиг Nginx называется nginx. conf и располагается в каталоге /etc/nginx , /usr/local/nginx/conf , или /usr/local/etc/nginx .