Задать вопрос
Ответы пользователя по тегу htaccess
  • Как сократить ссылки с помощью .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    GET не является частью урла
    RewriteCond %{QUERY_STRING} (^|&)language\=ru($|&)
    RewriteRule ^(.+)$ /%1? [L,R=301]
    Ответ написан
    Комментировать
  • Как сделать редирект в .htaccess на частично другой url?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteRule ^(.+)\-01\-mart\-2020$ /$1\-02\-aprel\-2020? [L,R=301]

    .+- 1 и более символов
    (..)- просто скобки собирают все в переменную $1 если были бы вторые скобки то они были бы $2
    подставляем все это в "куда"
    ну и ? в конце это удалить все гет параметры если они там были
    Ответ написан
    Комментировать
  • Как убрать слеши в конце .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    Вам не нужно его убирать, есть места где его нужно добавлять, например у файла его нужно убрать, у директории закрыть.
    подробно писал тут.
    https://klondike-studio.ru/standards/standartnyy-h...
    Ответ написан
    Комментировать
  • Как сделать редирект с любых страниц на главную кроме панели администратора?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{REQUEST_URI} !^(.*)/bitirx/admin 
    RewriteRule ^(.*)$ %1/ [R=301,L]
    Ответ написан
    Комментировать
  • Как сделать редирект ссылки с GET-параметрами на ссылку без них?

    shambler81
    @shambler81 Куратор тега htaccess
    да в урле "куда" нужно в конце поставить знак вопроса
    тогда гет удалится.
    Единственно что тебе останится это сделать првоерку на наличие гета вначале дабы небыло цикла.
    Ответ написан
  • Как сделать перенаправление на папку в htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{REQUEST_URI} ^admin-control/.* [NC]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^.* admin/src/ [QSA,L]

    а вообще опишите для чего вы это делаете возможно решение уже есть.
    Ответ написан
  • Как показать 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]

    не выдумывайте велосипед и геморой себе на одно место.
    Ответ написан
  • Какая будет команда в .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
    стапе
    конкретно что ты хочешь сделать ?
    избавиться от двойных слешей?
    весь файл в студию
    Ответ написан
    Комментировать
  • Как настроить редирект с 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]
    ....

    Какой-то идиот предложил это делать и все делают, че за стадное желание.
    Вы понимаете что линукс регистрозависимая ОС?
    это не винда, тут так делать НЕЛЬЗЯ !
    Ответ написан
  • Правильный ли у меня .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]
    Ответ написан
  • Как можно переделать .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 в линуксе
    Ответ написан
  • Как избавиться от технических дублей?

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