Htaccess замена части url
Мне пришлось изменить название подстраницы, и теперь проблема в том, что все общие ссылки на Facebook, Twitter и т.д. больше не работают.
Вот почему я пытаюсь перенаправить только часть URL с .htaccess , но у меня пока нет решения.
Он должен работать следующим образом:
Надеюсь, ты поможешь мне!
Это будет зависеть от вашего сервера, но вы ищете что-то в этом направлении
Вы можете попробовать переписать URL-адрес с помощью RewriteRule , например, следующим образом:
.htaccess
Надеюсь, это сработает для вас.
Вы можете найти дополнительную информацию здесь.
Блог Тимура Казанского
Как изменить url сайта с помощью htaccess?
В этой статье, я объясню, как изменить url сайта с помощью htaccess? Как сделать чпу(человеко-понятный url) или «friendly url»(дружественный url) вашего сайта на php, посредством файла .htaccess. Почему я выбрал именно этот вариант, и прочие особенности я расскажу в конце данной статьи. А пока, начнем с практики:
Если вы уже имеете файл .htaccess в корне сайта – замечательно, вам останется только добавить пару строчек кода, если нет, то создаем его:
Хочу отметить, что при создании .htaccess рекомендую использовать обычный, базовый блокнот (не Notepad++ и прочие аналоги).
И так, к примеру у нас есть интернет магазин на главной страничке которого имеются различные товары, чтобы просмотреть описание товаров, мы щелкаем на позицию понравившегося товара и получаем ссылку site.ru/products.php? >
Открываем наш файл .htaccess и прописываем туда следующие строчки кода: RewriteEngine on
RewriteRule ^social/(.*)/? site.php? >
Подождите, не убегайте! Это еще не все, самый главный момент, в котором очень многие заблуждаются, это то, что на этом ссылка сама изменится – нет! Она не изменится, если вы будете нажимать – на прежнюю, старую ссылку, ее нужно изменить самим, другими словами, только тогда и только тогда, когда мы вставляем в браузерную строку ссылку вида site.ru/products/2 – вот тогда она меняется, а во втором файле она будет восприниматься как ссылка site.ru/products.php? > Заменяем Перейти к описанию товара—> на Перейти к описанию товара—>
и не забываем прописать абсолютный путь для остальных файлов! В нашем случаем это файл со стилями в файле products.php т.к. именно для него мы изменили ссылку!
Заменяем
Проверяем и вуаля, вот он, желаемый результат!
А теперь на конкретном примере расскажу и покажу все подробно в деталях, чтобы всем было понятно:
Я уже писал о.htaccess, и вот столкнулся с проблемой, которая вынудила меня немного разобраться вообще в тех строках, которые там прописаны, а конкретно с mod_rewrite.
Модуль mod_rewrite представляет собой основанный на правилах механизм (синтаксический анализатор с применением регулярных выражений), выполняющий URL преобразования на лету.
Для начала — как подключить модуль? Для этого сначала прописываются строки:
Теперь немного о синтаксисе:
ЭЛЕМЕНТЫ
^ — обозначение начала строки
$ — обозначение конца строки
. — в регулярных выражениях точка ‘.’ обозначает мета-символ и должна быть защищена обратным слэшем (backslash), если Вы все-таки хотите
использовать именно фактическую точку.
. (точка) — текст (любой символ)
| — чередование (то есть/abc|def/)
* — любое число значений
s — оператор (string1 заменить на string2)
g — модификатор (искать по всему тексту)
ПЕРЕМЕННЫЕ
фЛАГИ
[F] — специальный ‘запрещающий’ флажок (forbidden).
[NC] — не учитывать регистр букв.
[OR] — означает ‘или следующее условие’.
[L] – last – после этой директивы дальнейший анализ директив RewriteRule останавливается и прочие директивы не исполняются
[R=301, L] — безопасный редирект
Для восприятия приведу пару примеров:
заменит строку ‘abc’, на строку ‘xyz’ во всем тексте. А вот выражение
означает: ‘Доступ ко всем файлам запрещен’
Как заменить адрес URL
Как же нам превратить один адрес в другой? Например, так:
http://www.yoursite.com/cgi-bin/shop.cgi?product3 в http://www.yoursite.com/shop/product1
Для этого воспользуемся переменными $1 и $2, которые связаны с текстовыми группами(.*):
То есть по сути, $1 = (.*) вначале, $2 = (.*) вконце, и задесь мы превращаем cgi-bin/shop.cgi? в shop/.
Как заблокировать доступ:
Если Вы хотите заблокировать определенный IP адрес, условие будет выглядеть так:
А если вы хотите заблокировать диапазон адресов? Например, с 212.37.64.0 по 212.37.64.255.
Как видим, ничего сложного
Ну и последний пример использования mod_rewrite — как сделать так, чтобы при наборе www.site.ru, его адрес заменялся на site.ru?
%
Далее сайт www.site.ru (регистр не важен) превращаем в http://site.ru/ (без ввода переменной замены не получается, правило не действует.)
Если вам есть что дополнить или мб исправить меня — милости прошу в комменты
И напоследок не могу не упомянуть об ещё одном хорошем веб-дизайн блоге — arniwebdesign