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