lapka-admin
@lapka-admin

Как добавить условие в apache и nginx?

Сейчас прописано:
<VirtualHost 222.222.222.222:8080>
    ServerName site.ru
    ServerAlias www.site.ru
    DocumentRoot /home/user/web/site.ru/public_html/my/www
    ...
</VirtualHost>


Первый вопрос: как написать условие:
Если адрес сайта начинается на site.ru/catalog
То отправить запрос не в www а в xxx:
DocumentRoot /home/user/web/site.ru/public_html/my/xxx

Второй вопрос: где это правильно написать (в этом же блоке VirtualHost? Выше иначе сработает первое правило с отправкой на www?) и нужно ли трогать алиас ServerAlias и для него тоже прописывать www.site.ru/catalog***

И по nginx такой же вопрос, там сейчас:

server {
    listen      222.222.222.222:80;
    server_name site.ru www.site.ru;
    error_log  /var/log/apache2/domains/site.ru.error.log error;

    location / {
        proxy_pass      http://222.222.222.222:8080;
        location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|tif|tiff|css|js|htm|html|ttf|otf|webp|woff|txt|csv|rtf|doc|docx|xls|xlsx|ppt|pptx|odf|odp|ods|od$
            root           /home/user/web/site.ru/public_html/my/www;
            access_log     /var/log/apache2/domains/site.ru.log combined;
            access_log     /var/log/apache2/domains/site.ru.bytes bytes;
            expires        max;
            try_files      $uri @fallback;
        }
    }
...
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 1
gohdan
@gohdan
Системный администратор
По апачу я бы сделал не в настройках хоста, а реврайтом в .htaccess.
Для nginx - через location:
location /catalog/ {
root /home/user/web/site.ru/public_html/my/xxx
....
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы