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

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

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

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

Решение

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

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

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

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

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

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

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

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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
server {
    # ... another code ...

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

    # ... another code ...

    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript text/woff2;

    location = /admin/ {
        try_files $uri /admin/index.php?$args;
    }

    location / {
        try_files $uri $uri/ @flynax-rewrite;
    }

    location ~* \.(woff|woff2|ttf|eot|otf|json)$ {
        add_header Access-Control-Allow-Origin "*";
        add_header Cache-Control "public, immutable, max-age=31536000";
        expires 1y;
        access_log off;
    }

    location ~* .(jpg|jpeg|gif|png|svg|woff|woff2|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;

        return 404;
    }

    # ... another code ...
}

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