Удалить get параметры htaccess

На хостинге RU-CENTER в настоящее время используется веб-сервер Apache версии 2.4.

Директивы файла .htaccess действуют для каталога, в котором размещён такой файл, и для всех его подкаталогов. Если вы желаете с помощью .htaccess изменить настройки для сайта в целом, его следует размещать в корневом каталоге сайта

Пожалуйста, будьте внимательны при редактировании файла .htaccess! При сохранении такого файла в кодировке UTF-8 в нём не должно присутствовать BOM-сигнатуры. Для редактирования файла .htaccess и других конфигурационных файлов мы рекомендуем использовать не «Блокнот» Windows, а специальные текстовые редакторы, например Notepad++.

1. Перенаправление доменов c синонима сайта на основной домен с кодом 301

Перенаправить запросы на domain.ru с любого из синонимов сайта

RewriteEngine On
RewriteCond % !^domain\.ru$ [NC]
RewriteRule ^(.*)$ http://domain.ru/$1 [L,R=301]

Перенаправить запросы на www.domain.ru с любого из синонимов сайта

RewriteEngine On
RewriteCond % !^www\.domain\.ru$ [NC]
RewriteRule ^(.*)$ http://www.domain.ru/$1 [L,R=301]

Эти правила рекомендуется размещать в самом начале файла .htaccess.

2. Постоянное перенаправление с кодом 301

Redirect 301 /page.html http://www.domain.ru/new_page.html

Например, для перенаправления всех запросов к странице /period/?test=123 вашего сайта на domain.ru, вы можете написать:

Options +FollowSymLinks
RewriteEngine On
RewriteCond % ^test=123$ [NC]
RewriteRule ^period/$ http://domain.ru/ [L,R=301]

3. Переопределение страниц ошибок

#401 Авторизация не выполнена
ErrorDocument 401 http://domain.ru/errors/401.html
#403 Доступ запрещен
ErrorDocument 403 http://domain.ru/errors/403.html
#404 Страница не найдена
ErrorDocument 404 http://domain.ru/errors/404.html
#500 Внутренняя ошибка сервера
ErrorDocument 500 http://domain.ru/errors/500.html

Соответствующие файлы страниц ошибок (401.html, 404.html и др.) необходимо разместить в каталоге

Для того чтобы при случайном упоминании прямых ссылок на такие страницы они не проиндексировались в поисковых системах, рекомендуется:

User-agent: *
Disallow: /errors

/ваш_домен/docs/errors/.htaccess, в котором прописать

4. Постраничное перенаправление запросов на другой домен c кодом 301

Следующий код перенаправит все запросы к страницам вашего сайта на аналогичные страницы другого сайта, например, запрос http://domain.ru/main будет переадресован на http://www.newdomain.ru/main:

Redirect 301 / http://www.newdomain.ru/

RewriteEngine On
RewriteRule ^(.*)$ http://newdomain.ru/$1 [R=301,L]

5. Ограничение доступа к сайту по IP

Запретить доступ к сайту с IP-адресов 123.4.5.6 и 123.5.4.3

Order Allow,Deny
Allow from all
Deny from 123.4.5.6 123.5.4.3

Запретить доступ к сайту со всех адресов кроме 123.4.5.6 и 123.5.4.3:

Order Deny,Allow
Deny from all
Allow from 123.4.5.6 123.5.4.3

Запретить доступ к сайту для всех:

6. Переопределение главной страницы сайта (индексного файла каталога)

Сделать главной страницей файл menu.html:

8. Запрет выдачи листинга каталога

В случае отсутствия в папке главной страницы (индексного файла), при обращении без указания конкретного имени файла в запросе будет выдан список всех файлов, находящихся в каталоге. Для того чтобы запретить отображение листинга каталога, добавьте в файл .htaccess строку:

Скрипт должен иметь атрибут исполнения (+x, права доступа, начинающиеся с 7, например, 755).

10. Блокировка переходов со сторонних ресурсов

Для запрета перехода c baddomain.ru на domain.ru добавьте в .htaccess следующее:

Если требуется запретить переходы с нескольких доменов, то используйте следующие директивы

В файле .htaccess использование кириллицы не допускается. При составлении правил перенаправления для кириллических доменов необходимо указывать имя домена в punycode. Узнать имя домена в punycode можно с помощью сервиса Whois.

Например, для перенаправления site.ru на caйт.рф нужно воспользоваться следующим правилом:

Читайте также:  Что является аутоиммунным заболеванием

RewriteEngine on
RewriteCond % ^www\.site.ru [NC]
RewriteRule ^(.*)$ http://xn--80aswg.xn--p1ai/$1 [R=301,L]

В этом случае ваши посетители могут увидеть именно punycode-представление доменного имени в адресной строке браузера. Это не является ошибкой.

12. Перенаправление с HTTP на HTTPS и обратно

Для работы перенаправления на сайте должен быть установлен действительный SSL-сертификат.

Перенаправить запросы на https://domain.ru

Перенаправить запросы на http://domain.ru

3. Диагностика ошибок

Если после редактирования или размещения .htaccess при обращении к сайту вы получили ошибку 500, то, скорее всего, в файле .htaccess допущена ошибка. Посмотреть её причины вы можете в лог-файле /var/log/ваш_домен.error_log.

Источник

Удаление GET-параметра из URL

В сегодняшней статье я решил разобрать весьма полезную функцию, удаляющую любой GET-параметр из строки. Где это может быть нужно? Допустим, Вы делаете навигацию по страницам. И Вам необходимо сделать универсальный скрипт её создания, добавляя к текущему URL параметр page. Однако, текущий URL может быть уже с параметром page. В итоге, получится, например, такой URL: «/?page=5&page=7«. Тогда как правильный должен быть: «/?page=7«. Таким образом, необходимо сначала удалить параметр page, а уже потом скрипт создания навигации по страницам сделает своё дело.

Привожу сразу код функции, которая это делает:

Вот так можно легко удалить GET-параметр из URL, вызвав функцию из этой статьи.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Комментарии ( 5 ):

Зачем такие сложности с разделением ссылки на 2 части? Есть же pparse_url

А еще есть strTok(), которая «отсекает» все вместе переданным токеном.

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

Copyright © 2010-2021 Русаков Михаил Юрьевич. Все права защищены.

Источник

Как убрать GET параметры в адресной строке

Здравствуйте!
Возможно преобразовать ссылку test1.ru/index.php?page=1 в test1.ru/index/page/1/

Скрипт постраничной навигации

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Привожу код полностью, появилась ошибка в 45 строке (Parse error: syntax error, unexpected T_IF)

Получилось

Я правильно понял, что одиночный » / » сразу обращается к каталогу или файлу который в корне, а «../» поднимает на один уровень выше.

Внутренняя ошибка сервера.

Добавлено через 55 минут
Не одна страница не открывается когда этот код прописываю.

Добавлено через 40 минут
Ошибка в коде, где убираем php в строке:

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Как отключить в хроме поиск в адресной строке?
Поставил Open Server, создал в папке domains папку с именем моего домена, перезапустил сервер, пишу.

Читайте также:  обучение по электробезопасности во владимире

Как изначально задать параметр в адресной строке?
Сейчас при загрузке с домашней страницы адрес выглядит вот так: /index.php В коде задано условие.

Как сделать, чтобы в адресной строке не отображалось расширение php?
как сделать чтоб не высвечивалась приставка php? и заходить что б можно было

$_GET разобрать параметры адресной строки
Добрый вечер, мне надо сделать так что бы при клике залоговка открывался полный текст записи я.

Источник

Редирект 301: URL с get-параметрами

Редирект через htaccess

Когда дело доходит до редиректа ссылок с get-параметрами, то многие веб-мастера обнаруживают, что стандартные правила в htaccess для них не работают:

Redirect 301 /page.php?id=1 /page/

Еще один не рабочий вариант:

RewriteRule ^page.php?id=1 /page/ [R=301,L]

Правильным решением будет использование директивы RewriteCond :

RewriteEngine On
RewriteCond % ^id=1$
RewriteRule ^(.*)$ http://mysite.com/page/? [R=301,L]

Более подробный вариант:

RewriteEngine On
RewriteCond % /page.php
RewriteCond % ^id=1$
RewriteRule ^(.*)$ http://mysite.com/page/? [R=301,L]

Если нужно сделать массовый редирект, то воспользуемся регулярным выражением, где (.*) выбирает любое значение:

RewriteCond % ^id=(.*)$
RewriteRule ^(.*)$ http://mysite.com/page/? [R=301,L]

Для того, чтобы сделать переадресацию с обычного url на ссылку с get-параметрами, пишем:

RewriteCond % /page.php$
RewriteRule ^(.*)$ https://mysite.com/newpage?id=1 [R=301,L]

RewriteCond % ^(?!id)
RewriteRule /page.php$ /newpage?id=1 [L,R=301,QSA]

Редирект средствами php

Бывают ситуации, когда удобнее воспользоваться редиректом на php:

В случае, если нужно сделать переадресацию нескольких url на один адрес, воспользуемся таким кодом:

Этим способом можно делать редирект для любых ссылок, кроме кириллических.

Таким же образом можно сделать переадресацию с помощью регулярного выражения:

Если нужно исключить любые get-параметры на главной странице:

Редирект в nginx

Недавно клиенту потребовалось настроить переадресацию c кириллического адреса на обычный с get-параметрами. При этом apache на сервере не использовался. В таком случае нам поможет nginx:

location =/моя-страница <
rewrite ^ /page.php?id=1 permanent;
>

Для переадресации со страницы с get-параметрами используем следующий код:

Источник

.htaccess

Почему то на просторах рунета информация о локальной настройки веб-сервера Apache посредством конфигурационного файла .htaccess приводится как то не полно и однобоко. В основном приводятся примеры (часто не рабочие) или сухой перевод англоязычной документации.

А как же быть, если нужно настроить несколько редиректов, и совсем нет времени познавать всю мощь .htaccess? Единственный выход это брать готовые примеры, и наугад адаптировать под свои нужды. В этой статье я напишу краткое руководство по .htaccess, которое закроет большинство вопросов новичков. А также приведу ссылки на подробные инструкции. Эта статья будет дописываться по мере необходимости, начну с самого основного.

Редиректы

Редиректы осуществляются с помощью модуля mod_rewrite. Задаются правила преобразований в виде следующей конструкции:

Правила преобразования записываются в таком виде:

В качестве [СТРОКИ ДЛЯ СРАВНЕНИЯ] могут использоваться различные переменные. Ссылка на полный список Я приведу только те, которые нужны чаще всего:

% Строка запроса (без доменного имени, и GET параметров), пример «/server/htaccess/»
% Доменное имя, например «max22.ru»
% Строка GET параметров

[УСЛОВИЕ] также как и [ШАБЛОН] представляют собой perl совместимое регулярное выражение, с некоторыми дополнениями, позволяющими например проверить файл ли это, или существующий url.

[ФЛАГИ] Флаги пишутся в квадратных скодках через запятую: [NC,OR]. Флаги для условий:

NC Регистронезависимая проверка
OR Условие сопостовляется с остальными про правилу ИЛИ
NC Регистронезависимая проверка
R=301 Будет редирект с кодом 301, можно указать другой код
L Это последнее правило, больше не применять правил преобразований

Надеюсь после моего краткого ввода в теорию, вам будет проще понимать что же написано в вашем .htaccess. Привожу ссылку на очень хороший перевод про модуль mod_rewrite, там же можно найти другие хорошие переводы.

Внимание! Браузеры кешируют редиректы.

Причем обычные сочетания типа Ctrl+F5 или Ctrl+R не помагают. Я во время тестирования каждый раз открываю страницу в НОВОМ окне в режиме инкогнито. Причем старые страницы в режими инкогнито надо закрывать.

Примеры

Универсальный редирект с www на без www

Тут самое интересное, почему то везде приводятся примеры, жестко привязанные к домену сайта. Зачем?, если есть универсальное решение:

Проверяем доменное имя, если оно начинается с www, то сработает правило: «все, на http://%1/$1«. Здесь %1 это наш домен без www (взят из условия), а $1 это адрес (взят из самого правила).

Универсальный редирект с без www на www

Тут маленько сложнее. Первое условие нужно для того чтобы получить домен (%1), оно всегда истина. Второе условие проверяет, что домен начинается не с www. Ну и само правило, аналогичное предыдущему примеру

Простой редирект

Для простого редиректа условия задавать не обязательно, только правило.

Реврайт без редиректа

Иногда требуется, чтобы был редирект без смены адреса, т.е. реврайт без редиректа. Для этого просто не указываем флаг редирект (R), и получаем желаемый результат, теперь по адресу news/happy получим news.html, а в адресной строке останется news/happy

Редирект от GET параметров

Например, нужно что бы со страницы /?action=page&id=15 был редирект на /page/15/:

Поясню, первым условиям проверяем что есть get параметр action=page, вторым условием проверяем что id равно числу. Эти условия нельзя объединять, т.к. параметры могут идти и наоборот, т.е. index.php?action=page&id=15 и index.php?id=15&action=page должны быть равноценны. Но и наконец правило, там все обычно, кроме знака вопрос (?) на конце. Он нам нужен, чтобы отсечь исходные GET параметры, иначе получим /page/15/?action=page&id=15

Редирект на мобильную версию сайта

Допустим, что мобильная версия расположена на поддомене m.site.ru. Будем переходить на мобильную версию только с главной страницы основного домена.

Первой строкой мы проверяем USER_AGENT, определяем что он относится к мобильникам. (эту строку я детально не проверял, взял на просторе интернета, возможно она не совсем корректная, или есть более универсальная строка. Но на моих мобильных устройствах этот пример работает)

Второй строкой проверяем что мы находимся на нужном домене (т.к. пример не универсальный)

Третьей строкой, мы проверяем, что находимся на главной страницы (без всяких параметров и прочего) и перенаправляем на поддомен.

Универсальная версия

Редирект с главной страницы

Речь идет про запрос типа site.ru (без site.ru/index.php)

Здесь оказалось не все так очевидно, я столкнулся с необъяснимым поведением.

Реврайт без редиректа (урл не меняется). Рабочий вариант:

Редирект. НЕ рабочий вариант:

Реврайт без редиректа (урл не меняется). НЕ рабочий вариант:

Редирект. Рабочий вариант:

Источник

Читайте также:  Что такое постнатальный период
Образовательный портал