Задать вопрос
  • Как показать 404 страницу без редиректа сразу если ее нет?

    shambler81
    @shambler81 Куратор тега htaccess
    нет смысла так делать, htaccess очень специфичекая штука и подзапрос будет очень сильно его тормозить.
    во вторых еще раз, уже не знаю какой раз.
    И яндекс и гугл смотрят только на последний код, всю цепочку они пропускают.
    так что если это будет 301 301 301 404 то это 404
    а как исключить файл из индекса это отдельная история тут более чем хватает инструментария.
    я уже если честно устал
    вот с этой шляпой бороться
    RewriteCond %{THE_REQUEST} /index\.php [OR]
    RewriteCond %{HTTPS}       !on         [OR]
    RewriteCond %{HTTP_HOST}   ^www\.      [NC]
    RewriteRule ^(.*?)(index\.php|$) https://localhost/$1 [R=301,L]

    не выдумывайте велосипед и геморой себе на одно место.
    Ответ написан
  • Какие бы вы задавали вопросы начинающему Linux-администратору на собеседовании?

    shambler81
    @shambler81 Куратор тега Linux
    find awk sed grep
    stdin stdout sdderr
    tcp/ip+ широковещялка
    Ответ написан
    Комментировать
  • Какая будет команда в .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteRule ^(.+?)\.html(?!/amp/).+$ https://%{HTTP_HOST}/$1.html [L,R=301]

    замени на
    RewriteRule ^(.+?)\.html(?!/amp/).+$ https://%{HTTP_HOST}/$1.html? [L,R=301]

    Удалится GET
    А вообще в RewriteRule не входит GET поскольку он не является частью урла!
    а вот так работают с GET
    # 301 --- http://www.test.com/faq.html?faq=13&layout=bob => http://www.test2.com/faqs.html
    RewriteCond %{HTTP_HOST} ^www\.test\.com$
    RewriteCond %{QUERY_STRING} (^|&)faq\=13($|&)
    RewriteCond %{QUERY_STRING} (^|&)layout\=bob($|&)
    RewriteRule ^faq\.html$ http://www.test2.com/faqs.html? [L,R=301]
    Ответ написан
    Комментировать
  • Слеши на конце в joomla?

    shambler81
    @shambler81 Куратор тега htaccess
    стапе
    конкретно что ты хочешь сделать ?
    избавиться от двойных слешей?
    весь файл в студию
    Ответ написан
    Комментировать
  • Битрикс - mysql ест память, как исправить?

    shambler81
    @shambler81 Куратор тега Linux
    то что сиквел ест память это нормально
    он ее отъедает специально для работы, По факту он ее резервирует, тут ничего страшного нет.
    Смотрите на сайт, скорее всего вам нужно поработать с кешем сайта
    Ответ написан
    Комментировать
  • Как настроить редирект с http на https?

    shambler81
    @shambler81 Куратор тега htaccess
    IfModule mod_rewrite.c можно не писать поскольку он по умолчанию включен.
    так же не забывай что он должен стоять до чпу сайта, дай весь файл.
    на некоторых серверах по разному отлавливается редирект
    где-то работает
    RewriteCond %{HTTPS} off
    где-то
    RewriteCond %{HTTPS} !on
    в общем просто подбери редирект подходящий твоему серверу.
    их штук 30
    На хабре тоже есть.
    Вот пример
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]


    Как настроить редирект на https в.htaccess?
    Ответ написан
  • Как изменить название url с помощью htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    1. домен регистронезависим не майтесь БубУйнеЙ
    2. Файлы и директории наоборот РегисТРОЗависИмЫе и их тоже нельзя менять вот так ;), это вам не винда.
    3. Если у вас сайт на ЧПУ то они тоже как правило регистрозависимые, если же ЧПУ ваше легко относится к таким фортелям, то в нем и делайте вот это убожетво.
    4. Зачем карл?
    5. редирект с html на без него вы найдете с легкостью, все что вам нужно будет это добавить flag [NC], если вам прям так уж прикипело, в таком случае редиректы будут регистронезависимые.
    Ответ написан
    Комментировать
  • Как сформировать htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    находится в гугле
    https://stackoverflow.com/questions/9856951/exclud...
    другое решение
    https://stackoverflow.com/questions/8697706/exclud...
    как минимум знаю еще одно
    должно сработать через
    <Directory /var/www/site.ru/directory1>
                    ........
       </Directory>
    Ответ написан
    Комментировать
  • Как правильно прописать редиректы в htaccess без их цепочки?

    shambler81
    @shambler81 Куратор тега htaccess
    1. гугл и я ндекс легко понимает последовательность редиректов.
    2. че это за шляпа у вас?#
    # Uppercase to lowercase conversion plug-in (This section, along with the first noted rule above, 
    # may be removed if not needed or wanted) Skip next 28 rules if no uppercase letters in URL
    RewriteCond %{ENV:myURI} ![A-Z]
    RewriteRule .? - [S=28]
    # Else swap them out, one at a time
    RewriteCond %{ENV:myURI} ^([^A]*)A(.*)$
    RewriteRule . - [E=myURI:%1a%2]
    RewriteCond %{ENV:myURI} ^([^B]*)B(.*)$
    RewriteRule . - [E=myURI:%1b%2]
    RewriteCond %{ENV:myURI} ^([^C]*)C(.*)$
    RewriteRule . - [E=myURI:%1c%2]
    RewriteCond %{ENV:myURI} ^([^D]*)D(.*)$
    RewriteRule . - [E=myURI:%1d%2]
    RewriteCond %{ENV:myURI} ^([^E]*)E(.*)$
    RewriteRule . - [E=myURI:%1e%2]
    ....

    Какой-то идиот предложил это делать и все делают, че за стадное желание.
    Вы понимаете что линукс регистрозависимая ОС?
    это не винда, тут так делать НЕЛЬЗЯ !
    Ответ написан
  • Как развернуть сайт на сервере?

    тебе нужно
    1. открыть порт в брендмауере 80 и 443
    2. Открыть эти же порты на роутере на внешку
    3. перенаправить эти порты с роутара на комп внутри сети, это порт форвардинг, там в роутере вы укажите какой порт направить на какой внутренний айпи
    эти порты отберутся у роутера и направятся на внутренний айпи
    4. вам нужно купить белый айпи 100р мес у вашего провайдера
    5. В А записе указать этот IP
    собственно все ;)
    Ответ написан
    2 комментария
  • Правильный ли у меня .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    ############################################################################
    #### настройки php 										                ####
    ############################################################################
    php_value max_execution_time 500
    php_value max_input_time 500
    php_value upload_max_filesize 30M
    php_value post_max_size 30M
    Options -Indexes
    AddCharset utf-8 .js
    ErrorDocument 403 /error/404
    ErrorDocument 404 /error/404
    
    ############################################################################
    #### Компрессия статического контента для гугл  спид тест               ####
    ############################################################################
    <IfModule mod_deflate.c>
      AddType image/svg+xml .svg
      AddOutputFilterByType DEFLATE image/svg+xml  
      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 1 year"
      ExpiresByType image/svg "access plus 1 year"
      ExpiresByType image/gif "access plus 1 year"
      ExpiresByType image/png "access plus 1 year"
      ExpiresByType text/javascript "access plus 1 year"
      ExpiresByType text/css "access plus 1 year"
      ExpiresByType application/javascript "access plus 1 year"
      ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
      ExpiresByType application/x-font-ttf "access plus 1 year"
      ExpiresByType application/x-font-opentype "access plus 1 year"
      ExpiresByType application/x-font-woff "access plus 1 year"
      ExpiresByType image/svg+xml "access plus 1 year"
    </IfModule>
      <IfModule mod_headers.c>
      <filesmatch "\.(ico|flv|jpg|jpeg|webp|png|gif|css|swf|woff|pdf)$">
        Header set Cache-Control "max-age=31536000, public"
      </filesmatch>
      <filesmatch "\.(html|htm)$">
        Header set Cache-Control "max-age=7200, private, must-revalidate"
      </filesmatch>
      <filesmatch "\.(pdf)$">
        Header set Cache-Control "max-age=86400, public"
      </filesmatch>
      <filesmatch "\.(js|otf|ttf|woff|woff2)$">
        Header set Cache-Control "max-age=31536000, private"
      </filesmatch>
      </IfModule>
    ############################################################################
    ####  Редиректы и прочее               ####
    ############################################################################
    
    <IfModule mod_headers.c>
        RequestHeader set X-Prerender-Token "КОД ТОКЕНА"
        RequestHeader set X-Prerender-Version "prerender-apache@2.0.0"
    </IfModule>
    
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
    RewriteRule ^(.*)$ httpы://site.ru/$1 [R=301,L]
    
    <IfModule mod_proxy_http.c>
            RewriteCond %{HTTP_USER_AGENT} googlebot|bingbot|yandex|baiduspider|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora\ link\ preview|showyoubot|outbrain|pinterest\/0\.|pinterestbot|slackbot|vkShare|W3C_Validator|whatsapp [NC,OR]
            RewriteCond %{QUERY_STRING} _escaped_fragment_
            RewriteCond %{REQUEST_URI} ^(?!.*?(\.js|\.css|\.xml|\.less|\.png|\.jpg|\.jpeg|\.gif|\.pdf|\.doc|\.txt|\.ico|\.rss|\.zip|\.mp3|\.rar|\.exe|\.wmv|\.doc|\.avi|\.ppt|\.mpg|\.mpeg|\.tif|\.wav|\.mov|\.psd|\.ai|\.xls|\.mp4|\.m4a|\.swf|\.dat|\.dmg|\.iso|\.flv|\.m4v|\.torrent|\.ttf|\.woff|\.svg))
            RewriteRule ^(index\.html|index\.php)?(.*) https://service.prerender.io/https://site.ru/$2 [P,END]
    </IfModule>
    
    ############################################################################
    #### ЧПУ сайта  										                ####
    ############################################################################
    
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !router.php$
    RewriteRule ^(.*)$ router.php/$1

    Однако я вижу у вас мод прокси, он очень редко используется, я бы не рекомендовал его использовать.
    Вместо этого в 404.php впишите php proxy
    это будет куда более ожидаемое действие а так же там можно делать str_replace и тд.
    Ответ написан
    3 комментария
  • Субдомен на .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    перенаправить можно. Но создать этот домен нельзя.
    RewriteCond %{HTTP_HOST} ^domain\.ru$
    RewriteRule ^admin$ http://admin.domain.ru/? [L,R=301]
    Ответ написан
  • Как максимально ускорить время загрузки Linux- десктоп с браузером?

    shambler81
    @shambler81 Куратор тега Linux
    1. купи ssd 1300р, на худой флешку 200р
    2. thinstation + pxe -загрузка системы 0.5 сек ;)
    3. Если прям зашквариться gentoo ( быстрей уже точно не будит если говорить о ос стоящем на компе)
    Ответ написан
    4 комментария
  • Как можно переделать .htaccess под NGINX у самописного движка?

    shambler81
    @shambler81 Куратор тега htaccess
    нет смысла заморачиваться в 404.php
    запихни редиректы и все.
    дабы пыха их умеет делать легко и непренужденно
    а главное не засоряешь htaccess, пока урл не возник никто редирект не пытается обработать.
    Ну а редиректы типа ввв вы с легкостью найдете в интернете
    Ответ написан
    Комментировать
  • Как настроить массовый редирект на бегете?

    shambler81
    @shambler81 Куратор тега htaccess
    во первых если вы выделяете в RewriteCond группы, то они подставляютяс не как $1 а %1 поскольку группы вы можете собирать еще и RewriteRule, но в вашем случае можно обойтись и без RewriteCond
    RewriteEngine On
    RewriteRule ^catalog/perchatki/(.*)$ /catalog/ekipirovka/perchatki/$1 [NC,R=301,L]

    NC - регистрогезависимость, можно не ставить
    Ответ написан
  • Как поменять абсолютный на альяс путь в Apache, .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    1 я бы вам посоветовал отказаться от сервера "c:/server/projects/localhost/joomla/"
    тем более есть замечательные вещи типа openserver
    2. вариантов много например Basedir в .htaccess
    3. через apache
    4. скорее всего вам это и подойдет, есть пути относительные и абсалютные
    https://www.uamedwed.com/blog/web/absolyutnyj-i-ot...
    так же не забывайте что и протокол теперь может быть разным, по этому //
    ну и на последок
    это из пункта 1 следует
    есть symlink и relative symlink в линуксе
    Ответ написан
  • Как пересоздать RAID1 без потери данных?

    shambler81
    @shambler81 Куратор тега Linux
    статей куча
    вот я писал лет 6 назад
    не думаю что там очень все поменялось.
    https://klondike-studio.ru/blog/raid-recovery/
    Ответ написан
  • Как избавиться от технических дублей?

    shambler81
    @shambler81 Куратор тега htaccess
    такие адреса есть у всех CMS порой до 5 на одну страницу ;)
    И так что можно сделать
    1. риал каноникал на всем сайте на текущую страницу без гет параметра. В идиале делайте првоерку во время генерации если страница с нормальным чпу то риал не ставите, если есть гет, тов дом добавляйте риал на страничку без гет.
    2. все остальные редиректы я уже описывал тут.
    вам этого хватит.
    https://klondike-studio.ru/standards/standartnyy-h...
    Ответ написан
    4 комментария
  • Как сделать редирект на корень сайта Apache?

    shambler81
    @shambler81 Куратор тега htaccess
    Гет параметр не является частью урла и по этому RewriteRule его не видет вообще
    для его выделения используют RewriteCond
    В вашем же случае вам нужно его просто удалить
    Сделать это легко
    Redirectmatch 301 ^(.+)CMS/?$ /$1?
    где вопрос в конце удалит гет параметр

    ну или вот так
    RewriteRule ^cms/aaaa$ /? [L,R=301,NC]
    саму регулярку уже подкрутите поскольку в вас в задаче явно не все написано.
    Так же не забывайте про регистрозависимость линукс и добавьте flag NC
    Ответ написан