Все чаще пользователи обращаются с вопросами о том, почему на сайте работает только главная страница доски объявлений, в то время как другие разделы, такие как страница добавления объявления (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 .
