Ответы пользователя по тегу Apache HTTP Server
  • Как настроить мультидомен в .htcaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    А зачем вам .htaccess 7
    любое nix семейство ОС с легкость позволяют иметь несколько корней.
    Для линукса по сути любая файловая структура виртуальна поскольк она сама по себе основана на айнодах.
    ТАк что вам куда проще будет физически разместить каталог в двух местах, тем более это делается 1 командой.
    И даже есть в MC так сказать в GUI
    https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%BC%D...
    по сути это как создать ярлык на папку или файл
    Притом их два варианта жестких и мягких.
    Вам нужна мягкая.
    Ответ написан
    Комментировать
  • Перенаправление https на без WWW, а http на www?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{HTTP} On
    RewriteCond %{HTTP_HOST} ^site.ru
    RewriteRule (.*) www.site.ru/$1 [R=301,L]
    Ответ написан
  • Переодически ошибка 500 на DLE сайте?

    ну а логи кто будет давать ?
    Ответ написан
    Комментировать
  • Сильная нагрука на VDS?

    iotop -oka и собери статистиу
    Ответ написан
    Комментировать
  • HTACCESS 301 редирект алиасов сайта?

    shambler81
    @shambler81 Куратор тега htaccess
    сделайте редиректы тут CNAME
    Ответ написан
    Комментировать
  • Как разрешить доступ к страннице в htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    addDefaultCharset utf8;
    RewriteEngine on
    RewriteCond $1 !^(index\.php|app|landing|robots\.txt|favicon\.png|files|politic.html|httploaders.txt|site|SQLyogTunnel\.php)
    RewriteCond {REQUEST_URI} !^.*papkaland/&
    RewriteRule ^(.*)$ index.php?/$1 [L]

    так и внесите в исключения
    Ответ написан
  • Как заменить путь к каталогу с картинками mod_rewrite?

    RewriteCond %{HTTP_HOST} aaa\.com [NC]
    #если этот домен, кстати  не учтено что может быть и с ввв (www\.|)
    RewriteCond %{REQUEST_FILENAME} -f
    #  и если это файл ?  надеюсь это физические файлы, если нет то отключить этот пункт
    RewriteCond %{REQUEST_URI} (.+)\.(jpg|jpeg|png|svg|tif|gif))& [NC]
    # а так же 1 и более символов после него точка и расширение (список), конец строки 
    RewriteRule (.*) bbb.com/%1 [L,R=301]
    #То %1 это первая скобка из Rewritecond не путай с $1 это первая скобка рула.
    Ответ написан
    5 комментариев
  • Нужно ли прописывать страницу ошибок в конфигурационных файлов обоих серверов, если веб-сервер работает в связке Apache + Nginx?

    ну это ваше дело
    я точно отрубаю аксесс лог в nginx ибо он мне не сильно интересен.
    А ерор лог врубаю толкьо при отладке.
    Ибо в него лезут все не найденые картинки и тд
    Тут надо смотреть что вы преследуете
    Меньше нагрузки - меньше логов
    Больше отладки - больше логов.
    Ответ написан
  • Можно ли как то ограничить доступ к файлам для клиента, по прямой ссылке. при такое схеме?

    shambler81
    @shambler81 Куратор тега Linux
    css+base64 само видео кодировать необязательно достаточно урлов
    Ответ написан
    4 комментария
  • Как настроить точку входа в апаче, если индексный файл лежит не в корневой директории?

    э, открыть конфиг исправить путь.
    перезапустить апачь, я думаю как-то так.
    Ответ написан
    3 комментария
  • Вопрос по конфигу Nginx и Apache. Как настроить поддомены?

    Если для всех сайтов 1 конфиг
    server {
                listen   80 default;
                server_name  _;
                server_name_in_redirect  off;
                resolver  127.0.0.1;
                error_page 404 = @fallback;
                #--------------Все 404  отдаем на обработку апача-------------------------------
                location @fallback {
                    proxy_pass http://$host:82;
                    proxy_set_header Host $host;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header X-Real-IP $remote_addr;
                }
                #--------------Статический контент отдаем на прямую-----------------------------
                location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|mp3)$ {
                    root /var/www/$host/web;
                    access_log off;
                    expires 30d;
                }
                #--------------HTML Вывел отдельно посколку файлы могут быть динамические-------
                location ~* ^.+\.(htm|html)$ {
                    root /var/www/$host/web;
                    access_log off;
                    expires 30d;
                }
                # -------------Основнйо локейшен -----------------------------------------------
                location / {
                    root /var/www/$host/web;
                    index index.php index.html index.htm;
                    access_log      off;
                    proxy_pass http://$host:82;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header Host $host;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                }
                #-------------- Настройки для phpmyadmin----------------------------------------
                location /phpmyadmin {
                    root /usr/share/;
                    index index.php index.html index.htm;
                    location ~ ^/phpmyadmin/(.+\.php)$ {
                    try_files $uri =404;
                    root /usr/share/;
                    proxy_pass http://$host:82;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header Host $host;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                }
                location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                    root /usr/share/;
                }
                }
                location /phpMyAdmin {
                    rewrite ^/* /phpmyadmin last;
                }
                #------------- WEBMAIL----------------------------------------------------------
                location /webmail {
                    root /var/www/apps;
                    index index.php index.html index.htm;
                    proxy_pass http://$host:82;
                    proxy_set_header X-Real-IP $remote_addr;
                location ^~ /awstats-icon {
                    alias /usr/share/awstats/icon/;
                    access_log off;
                }
                location ^~ /awstatscss {
                    alias /usr/share/doc/awstats/examples/css/;
                    access_log off;
                }
                    location ^~ /awstatsclasses {
                    alias /usr/share/doc/awstats/examples/classes/;
                    access_log off;
                }
    }   # Закрывает весь server !!!


    Если конкретно у каждого свой
    server {
    #------- Server configuration---------------------------------------------------
    
            listen 80;
            server_name infoodessa.com www.infoodessa.com 176.31.8.150;
            root /var/www/infoodessa.com/web;
    
    #-------- Error page ----------------------------------------------------------
            error_page 404 = @fallback;
            location @fallback {
            proxy_pass http://infoodessa.com:82;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Real-IP $remote_addr;
    }
    #-------DEV--------------------------------------------------------------------
      error_page 555 = @pass;
            location @pass {
            auth_basic "Unauthorized";
            auth_basic_user_file /var/www/dev_htpasswd;
            proxy_pass http://infoodessa.com:82;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Real-IP $remote_addr;
    }
    
    # ------ Log configuration ----------------------------------------------------
            access_log off;
            #error_log /var/log/ispconfig/httpd/infoodessa.com/nginx_error.log error;
            #access_log /var/log/ispconfig/httpd/infoodessa.com/nginx_access.log combined;
    
    #------ static content --------------------------------------------------------
        location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|mp3)$ {
            root  /var/www/infoodessa.com/web;
            access_log off;
             expires 30d;
    }
    #------ Locations configuration -----------------------------------------------
            # global locations
            # alias to local error docsinfoodessa.com www.infoodessa.com 
        location ^~ /error { root /var/www; }
    
        # default location
        location / {
            index index.php index.html index.htm;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://infoodessa.com:82;
            proxy_set_header Host $host;
    
    if ($http_host ~* "^(dev|old|www.dev)\..*\..{2,8}$"){
                    return 555;
                    }
                    if ($http_host ~* "^.*\.ks03\.ru$"){
                 return 555;
     }
    
    }
    #------- Directives configuration ---------------------------------------------
    #  для битрикс монитора
    add_header X-Content-Type-Options nosniff;
    add_header X-Frame-Options SAMEORIGIN;
    
     include /etc/nginx/locations.d/*.conf;


    Апачь висит на 82 порту

    <Directory /var/www/infoodessa.com>
            AllowOverride None
                    Order Deny,Allow
            Deny from all
        </Directory>
    <VirtualHost *:82>
    DocumentRoot /var/www/infoodessa.com/web
    ServerName infoodessa.com
    ServerAlias www.infoodessa.com
    ServerAlias www.109.74.130.76 109.74.130.76
    ServerAlias www.176.31.8.150 176.31.8.150
    ServerAdmin admin@rackster-server.ch
    ErrorLog /var/log/ispconfig/httpd/infoodessa.com/error.log
    
    Alias /error/ /var/www/error/
    <Directory /var/www/error/>
    Options +FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>
    ErrorDocument 400 /error/400.html
    ErrorDocument 401 /error/401.html
    ErrorDocument 403 /error/403.html
    ErrorDocument 404 /error/404.html
    ErrorDocument 405 /error/405.html
    ErrorDocument 500 /error/500.html
    ErrorDocument 502 /error/502.html
    ErrorDocument 503 /error/503.html
      <Directory /var/www/infoodessa.com/web>
       Options FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from all
      </Directory>
    
      <Directory /var/www/clients/client2/web3/web>
       Options +FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from all
       </Directory>
    
    
       <IfModule mod_suexec.c>
       SuexecUserGroup web3 client2
       </IfModule>
    
        # Clear PHP settings of this website
       <FilesMatch ".+\.ph(p[345]?|t|tml)$">
        SetHandler None
        </FilesMatch>
    
        # php as fast-cgi enabled
        # For config options see: http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html
        <IfModule mod_fcgid.c>
        FcgidIdleTimeout 300
        FcgidProcessLifeTime 3600
        # FcgidMaxProcesses 1000
        FcgidMinProcessesPerClass 0
        FcgidMaxProcessesPerClass 10
        FcgidConnectTimeout 3
        FcgidIOTimeout 1600
        FcgidBusyTimeout 3600
        FcgidMaxRequestLen 1073741824
        </IfModule>
    
                        <Directory /var/www/infoodessa.com/web>
                                <FilesMatch "\.php[345]?$">
                    SetHandler fcgid-script
                </FilesMatch>
                FCGIWrapper /var/www/php-fcgi-scripts/web3/.php-fcgi-starter .php
                FCGIWrapper /var/www/php-fcgi-scripts/web3/.php-fcgi-starter .php3
                FCGIWrapper /var/www/php-fcgi-scripts/web3/.php-fcgi-starter .php4
                FCGIWrapper /var/www/php-fcgi-scripts/web3/.php-fcgi-starter .php5
                    Options +ExecCGI
                    AllowOverride All
                    Order allow,deny
                    Allow from all
                         </Directory>
    
                            <Directory /var/www/clients/client2/web3/web>
                                    <FilesMatch "\.php[345]?$">
                        SetHandler fcgid-script
                    </FilesMatch>
                                    FCGIWrapper /var/www/php-fcgi-scripts/web3/.php-fcgi-starter .php
                    FCGIWrapper /var/www/php-fcgi-scripts/web3/.php-fcgi-starter .php3
                    FCGIWrapper /var/www/php-fcgi-scripts/web3/.php-fcgi-starter .php4
                    FCGIWrapper /var/www/php-fcgi-scripts/web3/.php-fcgi-starter .php5
                       Options +ExecCGI
                       AllowOverride All
                       Order allow,deny
                       Allow from all
                         </Directory>
    
                  # add support for apache mpm_itk
                    <IfModule mpm_itk_module>
                            AssignUserId web3 client2
                    </IfModule>
            </VirtualHost>


    В данном варианте мног лишнего для тебя, но удалить удаллишь.
    В этом варианте используется апач + mod_fastCGI
    В твоем скорее всего просто мод апач, следоватлеьно покорче будет.
    Да и много исключений для phpmyadmin и всякая хрень типа сайт начинающийся с dev. имеет пароль по умолчанию, но это мелочи, удалить сможешь всегда.
    Ответ написан
    Комментировать
  • Возможно ли сделать редирект с помощью htaccess без изменения пути после доменного имени?

    shambler81
    @shambler81 Куратор тега htaccess
    <IfModule dir_module>
        DirectoryIndex  index.php index.html index.htm
    </IfModule>

    вы разом не про это ?

    Второе решение

    RewriteCond %{REQUEST_METHOD} =GET
    RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
    RewriteRule ^(.*)$ %1/ [R=301,L]

    перед чпу
    Ответ написан
    1 комментарий
  • Как влияет количество редиректов в htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    первая рекомендация, запиши правельней гет.
    RewriteCond %{QUERY_STRING} (^|&)первый_гет($|&)
    RewriteCond %{QUERY_STRING} (^|&)еще_гет($|&)
    RewriteCond %{QUERY_STRING} (^|&)и так_далее($|&)

    Если урлов много то тут
    https://donatstudios.com/RewriteRule_Generator
    Вторая слеш и без слеша это не проблемма не редиректа, а любого сайта впринципе. Так чтоэто отдельне правило на весь сайт.

    ############################################################################
    #### Cтандартный .htaccess для проектов студии Клондайк, версия 2.3     ####
    ############################################################################
    RewriteEngine On
       #  Директива включает редиректы.
    RewriteBase /
       # Без директивы (.*) = /$1 будет /var/wwww/site/web/$1  с директивой  = /$1
    Options +FollowSymLinks
       # Разрешает переход по символическим ссылкам.
    
    ############################################################################
    #### Перенаправляем протокол https на http                              ####
    ############################################################################
    #RewriteCond %{HTTPS} On
       # Проверяем наличие https в URL.
    #RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
       # Перенаправляем протокол на https.
    ############################################################################
    #### Выбор основного зеркала (или с www или без www)                    ####
    ############################################################################
       # 1. Редирект с www на без www. (раскоментировать директивы пункта 1)
    RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
       # Проверяем, содержит ли домен www (в начале URL).
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
       # Перенаправляем URL на домен без www.
    ####
       # 2. Редирект без www на www. (раскоментировать директивы пункта 2)
    #RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
       # Проверяем, не содержит ли домен www (в начале URL).
    #RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
       # Перенаправляем URL на домен c www.
    
    ############################################################################
    #### Убираем повторяющиеся слеши (/) в URL                              ####
    ############################################################################
    RewriteCond %{THE_REQUEST} //
    RewriteRule .* /$0 [R=301,L]
    ############################################################################
    #### Убираем слеши в конце URL для статических файлов (содержит точку)  ####
    ############################################################################
    RewriteCond %{REQUEST_URI} !(.*)/$
       # Если слеша в конце нет.
    RewriteCond %{REQUEST_FILENAME} !-f
       # Не является файлом.
    RewriteCond %{REQUEST_URI} !\..+$
       # В URL нет точки (файл).
    RewriteRule ^(.*)$ $1/ [L,R=301]
       # Добавляем слеш в конце.
    ############################################################################
    #### Добавляем слеш(/), если его нет, и это не файл.                    ####
    ############################################################################
    RewriteCond %{REQUEST_URI} !(.*)/$
       # Если слеша в конце нет.
    RewriteCond %{REQUEST_FILENAME} !-f
       # Не является файлом.
    RewriteCond %{REQUEST_URI} !\..+$
       # В URL нет точки (файл).
    RewriteRule ^(.*)$ $1/ [L,R=301]
       # Добавляем слеш в конце.
    
    ############################################################################
    #### Убираем index.php, если он есть в конце URL                        ####
    ############################################################################
    RewriteCond %{REQUEST_METHOD} =GET
       # Выявляем GET запрос в URL (не POST).
    RewriteCond %{REQUEST_URI} ^(.*)/index\.php$
       # URL cодержит index.php в конце.
    RewriteRule ^(.*)$ %1/ [R=301,L]
       # Удалить index.php из URL.
    
    ############################################################################
    #### Компрессия статического контента для гугл  спид тест               ####
    ############################################################################

    Нужное подчеркнуть, ненужное удалить.
    Ставить ДО ЧПУ.

    Теперь вопрос третий, сильно ли влияет.
    я пытался в свое время замерить падение производительности но до 6к редиректов притом с2-6 квери ( отдельные конды на каждого) нифига не заметил. ТАк что да оно есть. Но выявить реальное падение не удалось.
    Ответ написан
  • Как настроить rewriterule в htaccess для главной страницы и категорий?

    shambler81
    @shambler81 Куратор тега htaccess
    Мде а кто тебе сказал что GET пармметр является частью урла ?
    Тут тебе будет пример как сделать редирект с гет пармметрами.
    https://donatstudios.com/RewriteRule_Generator
    А тут я писал как убрать категорию.
    https://klondike-studio.ru/blog/snipet-for-htaccess/
    Ответ написан
    Комментировать
  • Как сократить сразу два URL через .HTACCCESS?

    shambler81
    @shambler81 Куратор тега htaccess
    в конде создайте услови или, или
    собственно и все
    RewriteCond %{REQUEST_URI}  ^([A-z0-9-]+)$/(posts|pages)/([A-z0-9-]+)/$1  [NC]
    RewriteRule   .*  http://site.ru/%1%3

    Где %1 это номер скобки в конде, аналог $1 прям из рула.
    Ответ написан
  • Настройка 301 редиректов в htaccess Opencart - как заставить работать?

    shambler81
    @shambler81 Куратор тега htaccess
    гет запрос не является частью урла
    # 301 --- http://site.ru/index.php?route=product/product&path=57&product_id=61 => http://site.ru/zhylety/zhiletprofi16
    RewriteCond %{QUERY_STRING} (^|&)route\=product/product($|&)
    RewriteCond %{QUERY_STRING} (^|&)path\=57($|&)
    RewriteCond %{QUERY_STRING} (^|&)product_id\=61($|&)
    RewriteRule ^index\.php$ /zhylety/zhiletprofi16? [L,R=301]
    Ответ написан
    Комментировать
  • При настройке htaccess 404 ошибка. Как правильно сделать?

    shambler81
    @shambler81 Куратор тега htaccess
    # 301 --- http://www.mydefile.ru/company/?a=47071 => http://www.mydefile.ru/about/
    RewriteCond %{QUERY_STRING} (^|&)a=47071($|&)
    RewriteRule ^company/$ /about/? [L,R=301]
    Ответ написан
    Комментировать
  • Как правильно сделать 301 редирект с поддомена на страницу сайта?

    RewriteCond %{HTTP_HOST} ^(.*)\.site\.com$ [NC]
    RewriteRule ^(.*)$ site.com/%1 [R=301,L]

    пойдет ?
    Ответ написан
    Комментировать
  • Apache vs Ngnix+FastCGI vs Ngnix+Apache - что производительней для php?

    nginx+phpFPM - однозначно
    Ответ написан
    Комментировать