Задать вопрос
  • Как правильно сделать редирект в .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    https://www.donatstudios.com/RewriteRule_Generator
    она умеет делать и редиректы с гетом и без гетов,
    единственное она не умеет делать редирект на урл с гетом, посколку перев ? не ставит \? , но это можнро и руками сделать.
    Теперь по слешу.
    Он должен быть по умолчанию.
    но тут нужно чуть больше исключений чем кажется.

    ############################################################################
    #### Убираем повторяющиеся слеши (/) в URL ####
    ############################################################################
    RewriteCond %{THE_REQUEST} //
    RewriteRule .* /$0 [R=301,L]
    ############################################################################
    #### Убираем слеши в конце URL для статических файлов (содержит точку) ####
    ############################################################################
    RewriteCond %{REQUEST_URI} \..+$
    # Если файл содержит точку.
    RewriteCond %{REQUEST_FILENAME} !-d
    # И это не директория.
    RewriteCond %{REQUEST_FILENAME} -f
    # Является файлом.
    RewriteCond %{REQUEST_URI} ^(.+)/$
    # И в конце URL есть слеш.
    RewriteRule ^(.+)/$ /$1 [R=301,L]
    # Исключить слеш.

    ############################################################################
    #### Добавляем слеш(/), если его нет, и это не файл. ####
    ############################################################################
    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.
    ############################################################################
    #### Компрессия статического контента для гугл  спид тест               ####
    ############################################################################
    <IfModule mod_deflate.c>
      # Compress HTML, CSS, JavaScript, Text, XML and fonts
      AddOutputFilterByType DEFLATE application/rss+xml
      AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
      AddOutputFilterByType DEFLATE application/x-font
      AddOutputFilterByType DEFLATE application/x-font-opentype
      AddOutputFilterByType DEFLATE application/x-font-otf
      AddOutputFilterByType DEFLATE application/x-font-truetype
      AddOutputFilterByType DEFLATE application/x-font-ttf
      AddOutputFilterByType DEFLATE application/x-javascript
      AddOutputFilterByType DEFLATE application/xhtml+xml
      AddOutputFilterByType DEFLATE application/xml
      AddOutputFilterByType DEFLATE font/opentype
      AddOutputFilterByType DEFLATE font/otf
      AddOutputFilterByType DEFLATE font/ttf
      AddOutputFilterByType DEFLATE image/svg+xml
      AddOutputFilterByType DEFLATE image/x-icon
      AddOutputFilterByType DEFLATE text/css
      AddOutputFilterByType DEFLATE text/html
      AddOutputFilterByType DEFLATE text/javascript
      AddOutputFilterByType DEFLATE text/plain
      AddOutputFilterByType DEFLATE text/xml
      AddOutputFilterByType DEFLATE image/svg+xml
    </IfModule>
    <IfModule mod_expires.c>
      ExpiresActive on
      ExpiresByType image/jpeg "access plus 3 day"
      ExpiresByType image/svg "access plus 3 day"
      ExpiresByType image/gif "access plus 3 day"
      ExpiresByType image/png "access plus 3 day"
      ExpiresByType text/javascript "access plus 3 day"
      ExpiresByType text/css "access plus 3 day"
      ExpiresByType application/javascript "access plus 3 day"
    </IfModule>
    Ответ написан
    Комментировать
  • Как решить проблему с php.ini?

    shambler81
    @shambler81 Куратор тега Linux
    sudo apt-get install libapache2-mod-php
    sudo apt-get install php-mbstring
    Ответ написан
    6 комментариев
  • Ошибка на хостинге?

    помоем по русски написано
    У вас проблемы с доступом к этому каталогу, и 777 не факт что помогут, поскольку файлы все-равно создаются динамически со своими правами, да и 777 это не панацея.
    Вам нужно посмотреть в php.ini настройку сессий
    Каак миниммум у вас будет достаточно прав хранить сессию в своей папке сайта, поменяйте настройки на нее, убедитесь что сесии работают и после этого ОБЯЗАТЕПЛЬНО удалити сессии из этой папки и настройте их вне корня сайта
    Ответ написан
    Комментировать
  • Не работает относительная ссылка на index.html в дочерней директории?

    shambler81
    @shambler81 Куратор тега htaccess
    вижу кучу ошибок, вначале их исправь.
    1. хост в ввв пишется с экраном точек,
    www\.comics-man\.ru
    во вторых я бы вообще от домена избавился, да и с https нужно правильно работать.
    RewriteCond %{SERVER_PORT} !^443$
    RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
    
    RewriteCond %{SERVER_PORT} ^443$
    RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
    RewriteRule ^(.*)$ https://%1/$1 [R=301,L]


    Далее проще через REQUEST_URI
    RewriteCond %{REQUEST_URI} ^(.*)/index\.html$
    RewriteRule ^(.*)$ %1/ [R=301,L]

    А то что вы делаете это просто удаляете все.

    теперь с удалением слеша в конце, вообще семантически его какрк-таки нуно ставить.
    но это уже на ваше совести.
    по идее все наоборот.
    ############################################################################
    #### Убираем повторяющиеся слеши (/) в URL                              ####
    ############################################################################
    RewriteCond %{THE_REQUEST} //
    RewriteRule .* /$0 [R=301,L]
    ############################################################################
    #### Убираем слеши в конце URL для статических файлов (содержит точку)  ####
    ############################################################################
    RewriteCond %{REQUEST_URI} \..+$
       # Если файл содержит точку.
    RewriteCond %{REQUEST_FILENAME} !-d
       # И это не директория.
    RewriteCond %{REQUEST_FILENAME} -f
       # Является файлом.
    RewriteCond %{REQUEST_URI} ^(.+)/$
       # И в конце URL есть слеш.
    RewriteRule ^(.+)/$ /$1 [R=301,L]
       # Исключить слеш.
    
    ############################################################################
    #### Добавляем слеш(/), если его нет, и это не файл.                    ####
    ############################################################################
    RewriteCond %{REQUEST_URI} !(.*)/$
       # Если слеша в конце нет.
    RewriteCond %{REQUEST_FILENAME} !-f
       # Не является файлом.
    RewriteCond %{REQUEST_URI} !\..+$
       # В URL нет точки (файл).
    RewriteRule ^(.*)$ $1/ [L,R=301]


    Ну да и не забудь рекомендации гугл
    <IfModule mod_deflate.c>
      # Compress HTML, CSS, JavaScript, Text, XML and fonts
      AddOutputFilterByType DEFLATE application/rss+xml
      AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
      AddOutputFilterByType DEFLATE application/x-font
      AddOutputFilterByType DEFLATE application/x-font-opentype
      AddOutputFilterByType DEFLATE application/x-font-otf
      AddOutputFilterByType DEFLATE application/x-font-truetype
      AddOutputFilterByType DEFLATE application/x-font-ttf
      AddOutputFilterByType DEFLATE application/x-javascript
      AddOutputFilterByType DEFLATE application/xhtml+xml
      AddOutputFilterByType DEFLATE application/xml
      AddOutputFilterByType DEFLATE font/opentype
      AddOutputFilterByType DEFLATE font/otf
      AddOutputFilterByType DEFLATE font/ttf
      AddOutputFilterByType DEFLATE image/svg+xml
      AddOutputFilterByType DEFLATE image/x-icon
      AddOutputFilterByType DEFLATE text/css
      AddOutputFilterByType DEFLATE text/html
      AddOutputFilterByType DEFLATE text/javascript
      AddOutputFilterByType DEFLATE text/plain
      AddOutputFilterByType DEFLATE text/xml
      AddOutputFilterByType DEFLATE image/svg+xml
    </IfModule>
    <IfModule mod_expires.c>
      ExpiresActive on
      ExpiresByType image/jpeg "access plus 3 day"
      ExpiresByType image/svg "access plus 3 day"
      ExpiresByType image/gif "access plus 3 day"
      ExpiresByType image/png "access plus 3 day"
      ExpiresByType text/javascript "access plus 3 day"
      ExpiresByType text/css "access plus 3 day"
      ExpiresByType application/javascript "access plus 3 day"
    </IfModule>
    Ответ написан
    1 комментарий
  • Как правильно настрить phpmyadmin?

    1. не фантастика отдельно настроенный виртуал хост, манов в интернете навалом, настроен именно на маску /phpmyadmin
    2. так же нужно учесть что последние версии phpmyadmin очень требовательны к версии php и давно уже требуют 7 версию, не факт что все сайты буду в состояние поддерживать новый релиз. Ну и по сути тут вообще ничего сложного.
    3. я так понимаю имелась в виду nginx+apache конфигруация.
    Ответ написан
  • Как написать скрипт для rsync?

    if ping -c2 yandex.ru  > /dev/null; then
      echo "есть контакт, яндекс доступен "
    else
    mail -s "hello" "example@yandex.ru" <<EOF
    А сервер то недоступен, сообщение многострочное. йеоэф это конец и начало сообщения 
    EOF
    fi
    Ответ написан
    Комментировать
  • Как настроить умный поиск через egrep?

    shambler81
    @shambler81 Куратор тега Linux
    egrep -c -i -U "dev" || echo "гре ничего не нашел и вернул статус фейл"

    еще вариант
    grep -q -ciU - возвращяет статус 0 если поиск успешен.
    Ответ написан
    6 комментариев
  • Как правильно прописать код в .htaccess для выполнения действия зсилання во внутреннюю папку?

    shambler81
    @shambler81 Куратор тега htaccess
    Если вам нужно так сделать со ВСЕМИ запросами
    то конечно проще поменять в конфиге апача DocumentRoot
    Ответ написан
    Комментировать
  • Apache не открывает localhost, может кто сталкивался с такой пробемой?

    /html ? откуда ?
    /var/www
    По умаолчанию туда все ставилось,
    А вообще конечно нужно создать локейшен для сайта.
    Ответ написан
    Комментировать
  • Почему не меняется dkim_selector у DKIM записи к домену в VestaCP?

    Думаю все банально просто mail._domainkey. прописан в генераторе конфига ДНС И exim тут вообще нипричем.
    Вам нужно посмотреть где веста генерит этот файлик и поменять в нем шаблон.
    Например в ispconfig3 эта хрень выведена в админку с пресетами и там таких вопрсоов не возникает,
    В весте не ковырялся никогда но принцип тот же, есть шаблонизатор генерации.
    НИкто не полезет в ваш эксим читать что-то там.
    Ответ написан
  • Как сделать перенаправление с поддоменов на основной домен?

    shambler81
    @shambler81 Куратор тега htaccess
    а нехрен его располагать в папке /var/www
    и тому подобное.
    Поскольку у вас есть конфиг default.conf в котоом собираются все "мусорные" запросы
    типа дев нула дял сайтов.
    Как правило особо отличившиеся ставят сайтв эту папку В следсвтвие чего этот сайт доступен по любому домену который сошлется на этот сайт, любому айпи и тд. . А по сути в ней должно лежать "здрасти вы ошиблись сайтом но сервер тот "
    А вот для реальных сайтов создаются свои конфиги с прописаными путями до файлов.
    Тогда апачь попадает по http заголовку в нужный сайт.
    В вашем же случае сайт test.ru скорее всего лежит именно в таком месте, как вариант создать под него отдельнй виртуалхост и не праиться.
    Ответ написан
    Комментировать
  • Реализация резервного копирование файлов по маске директории?

    shambler81
    @shambler81 Куратор тега Linux
    Поиск всех изображений и копирование их с сохранением структуры

    Найдет все картинки рекурсивно от текущего каталога и скопирует их сохраняя структуру каталогов в папку /tmp/backu

    find . -regex ".*\.\(jpg\|jpeg\|gif\|png\|JPG\|JPEG\|GIF\|PNG\)" -print0 | xargs -0 cp --parents --target-directory ./tmp/backup


    В линуксе можно сделать все!
    Ответ написан
  • Как сократить ссылкy?

    shambler81
    @shambler81 Куратор тега htaccess
    Это урл с гет запросом, гет не является частью request_uri по этому им управляют отдельно.
    RewriteCond %{QUERY_STRING} (^|&)page\=catalog($|&)
    RewriteCond %{QUERY_STRING} (^|&)cat\=2499($|&)
    RewriteRule ^index\.php$ /catalog/2499? [L,R=301]

    Вопрос в конце удалит гет параметр
    Ответ написан
  • Как составить запрос GREP по двум условиям?

    1. grep умеет читать ТОЛЬКО строки !! и не умеет читать с переносом, так что содержимое должно быть именно в 1 строке.
    grep -rlE \(денис.*максим\|максим.*денис\) .
    -r рекурсивно
    -l имя файла а не содержимое
    -E регулярки
    Но в товоем случае греп сильно хорошо подойдет поскольку тебе нужно искать во всем файле, да и оптимальным такой вариант не назвать.
    Так работать будет !
    grep -l денис *$(grep -rl максим)
    Так будет по реще хотя прийдется строить два цикла.
    В первом мы ищем имена файлов в которых есть максим
    создав массив файлов мы передаем его грепу денис и ищем опять еж имена файлов.
    Ответ написан
    Комментировать
  • Как сверстать этот блок?

    сдается мне батенька что это container-fluid
    col-6
    col-6
    Ответ написан
  • Вирус на сайте, который плодит файлы редиректов htaccess - как избавиться?

    shambler81
    @shambler81 Куратор тега htaccess
    Качаешь запускаешь с консоли, можно через пхп собственно но я бы с консоли лучше запускал.
    Дальше ждешь когда просканит
    открываешь статистику.
    Удаляешь вирусы согласно написаному.
    ТАм будут и файлы и место.
    если сам не сможешь написать скрипт по удалению кидай лог сюда, только регуляркой замени домен на site.ru - дабы люди ушлые не воспользовались.
    revisium.com/ai/index.php?q=8271542351504877357110...
    че за зверь такой читаешь тут
    https://revisium.com/ai/
    Ответ написан
    Комментировать
  • Как написать скрипт проверки скорости до хоста?

    подожди, помоему мы делаем не то что нужно.
    Какова изначальная задача ?
    что ты собственно этим хочешь сделать то ?

    1. Зачем pdsh, обычный sh пойдет ?
    2. Зачем в принцпе подключаться к этому компу когда можно померить через wget и тд притом вариантов миллион, притом ставить ничего не нужно и пароли охранить тоже.
    3. собствеено кто мешает воспользоваться прсото ssh который умеет сам по себе выполнять команды на другом сервере ?
    Опиши более подробно что бы ты хотел в конечном итоге получить и в чем идея, возможно мы найдем простой вариант. ДА и сделать твой скрипт совершенно не сложно .
    Ответ написан
  • Как настроить редирект на cms arwshop.ru?

    shambler81
    @shambler81 Куратор тега htaccess
    а с какого перепугу они должны работать ?
    У тебя в руле гет параметр, который не является частью урла в принципе.
    Что ты от него хочешь ?

    Вот тебе счастье
    https://www.donatstudios.com/RewriteRule_Generator
    Дальше только подставишь свои маски.
    кстати{1,255}можно смело заменить на {1,}- что означает от одного и выше
    А вот [0-9a-zA-Z\x80-\xFF\x20\/\_\] я так понимаю можно сократить и до +
    Ответ написан
  • Как убрать get параметры из редиректа?

    shambler81
    @shambler81 Куратор тега htaccess
    www.site.ru/pravoslavnie-molitvoslovi/\?
    Вот так
    Ответ написан