The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Редирект на URL и примеры использования mod_rewrite (web apache redirect mod_rewrite)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: web, apache, redirect, mod_rewrite,  (найти похожие документы)
Subject: Редирект на URL и примеры использования mod_rewrite Для автоматического перенаправления на внешнюю страницу (при входе в директорию /test на вашем сайте пользователь будет перенаправлен на http://www.test.com/) можно использовать такую конструкцию в httpd.conf или .htaccess: Redirect permanent /test http://www.test.com/ Или для файла test.html: Redirect permanent /test.html http://www.test.com Зашедших в test перенаправляем на www.test.com, оостальных на enter.test.com, (порядок следования записей важен !): Redirect permanent /test http://www.test.com/ Redirect permanent / http://enter.test.com/ Рассмотрим оргинизацию редиректа при помощи mod_rewrite: Для работы с mod_rewrite незабудьте статически собрать apache с поддержкой mod_rewrite или подключить модуль: LoadModule rewrite_module libexec/mod_rewrite.so AddModule mod_rewrite.c http://www.engelschall.com/pw/apache/rewriteguide/ http://www.apache.org./docs/mod/mod_rewrite.html Например, если необходимо чтобы вместо rewrite.htm заружался файл rewrite.html, добавьте в .htaccess: RewriteEngine on RewriteBase / RewriteRule ^rewrite\.htm$ rewrite.html [R=permanent] Для замены всех .htm фалов .html файлами: RewriteEngine on RewriteBase / RewriteRule ^(.*)\.htm$ $1.html [R=permanent] Пример манипуляции с переменными окружения (делаем редирект на .html если запрошен файл .htm и на диске есть одноименный .html файл): RewriteEngine on RewriteBase / #Если .htm файл устанавливаем переменную окружения HTM=1 RewriteRule ^(.*)\.htm$ $1 [C,E=HTM:1] #Проверяем существует ли файл на диске RewriteCond %{REQUEST_FILENAME}.html -f #Если существует делаем редирект RewriteRule ^(.*)$ $1.html [S=1,R] # если не сеществует и переменная окружения HTM=1 показываем запрошенный .htm RewriteCond %{ENV:HTM} ^1$ RewriteRule ^(.*)$ $1.htm Для ведения отдельньго лог файла со всеми пересылками нужно добавить в httpd.conf: RewriteLog /var/log/apache/rewrite.log RewriteLogLevel 1 Более подробно про mod_rewrite: http://www.engelschall.com/pw/apache/rewriteguide/ http://www.apache.org./docs/mod/mod_rewrite.html

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, xternal (?), 22:34, 20/10/2002 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    это все ломается млин
     
     
  • 2.2, uldus (?), 10:22, 21/10/2002 [^] [^^] [^^^] [ответить]  
  • +/
    >это все ломается млин

    Что конкретно ломается и как ?

     

  • 1.3, stiff (?), 12:10, 08/09/2003 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    как мне сделать такую вещь:
    пишем в броузере http://localhost/s1?id=5 , а попадаем на страницу http://localhost/scripts.php?name=s1&id=5 ?
    пишу:
    RewriteRule ^s1\??(.*)$ /scripts.php?name=s1&$1
    а оно не работает... получается /scripts.php?name=s1& и всё :(
     
  • 1.4, Павел (?), 22:54, 02/02/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вопрос:
    Может ли mod_rewrite выдавать вместо ссылок /temp.php?browse=/Shopping/ скажем /shopping/index.html
    Далее у меня идут ссылки temp.php?browse=/Shopping/Vehicles/Autos/ а нужно чтобы выдавал /shoping/Vehicles/Autos/index.html
    И таких вложений слишком много, как сдлеать чтобы это все делалось автоматом?
    Если да то что нужно написать в  .htaccess.
     
  • 1.5, Zerg WereWolf (?), 18:25, 27/03/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Элементарно, Ватсон...
    в .htaccess пишешь
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^(.*)/$ /temp.php?browse=$1 [QSA]
    </IfModule>
     
     
  • 2.6, Vigeo (?), 02:03, 22/07/2004 [^] [^^] [^^^] [ответить]  
  • +/
    Привет всем!
    Подскажите как сделать редирект одной страницы портала
    http://***.ru/modules/myarticles/article.php?storyid=21
    на
    http://***.ru/modules/banners.php
    Только подробнее, пожалуйста, я, к сожалению, только начинаю разбираться в этом деле. :)
     
  • 2.28, 1 (??), 02:19, 08/07/2012 [^] [^^] [^^^] [ответить]  
  • +/
    1
     

  • 1.7, casufi (ok), 20:44, 07/08/2004 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Здравствуйте, насколько я вижу вы используете регулярные выражения, для того чтобы описать правила перенаправления. Подскажите где можно подробно на русском языке поситать как использовать рег_експы для написания редиректов
     
     
  • 2.8, Андрей Ильин (?), 19:25, 05/03/2005 [^] [^^] [^^^] [ответить]  
  • +/
    Синтаксис regular expression (шаблонов) в Apache, кажется, идентичен Perl.
    А приблизительное описание очень давно публиковал Владимир Маслов:
    http://www.tarusa.ru/perl/Perl5/re.html
    Поищите искалкой "perl regexp", наверняка еще что-то найдете.
     

  • 1.9, lodos (?), 02:31, 16/03/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вопрос:
    Есть домен http://rus-titan.ru

    есть зеркала
    http://dstone.ru/rustitan
    http://olec.ru/subdomains/rustitan

    Нужно, чтобы по адресу http://rus-titan.ru открывалось с любого зеркала. Но ВАЖНО, чтоб в адресной строке было http://rus-titan.ru.

    например, юзер лезет по ссылке и видит в адр.строке:
    http://rus-titan.ru/modules.html?op=modload&name=Topics&file=index&func=3
    а на самом деле это адрес:
    http://olec.ru/subdomains/rustitan/modules.html?op=modload&name=Topics&file=i

    подскажите че в .htaccess-е прописать нада. а то я с ним не о4ень

    Спасибо ;)

     
     
  • 2.18, Alexander (??), 12:04, 10/01/2008 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>подскажите че в .htaccess-е прописать нада. а то я с ним не о4ень

    Никак это нельзя сделать=)

     
     
  • 3.20, Tem (?), 16:14, 26/07/2008 [^] [^^] [^^^] [ответить]  
  • +/
    интересно у меня нечего вроде не ломалось
     

  • 1.10, leopard (?), 13:27, 13/07/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вопрос:
    У меня ссылки все такого рода
    http://example.ru/index.php?type=122
    или
    http://example.ru/index.php?type=122&idF=34
    или
    http://example.ru/index.php?type=122&idF=34&idF1=119
    ну и так далее ...
    Что можно сделать с такого рода ссылками.
    Хотелось бы преобразовать во что-то вроде
    http://example.ru/**/**/index.html
    Возможно ли такое, и как ?

    Заранее спасибо :)

     
     
  • 2.25, seprize (?), 22:09, 20/04/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    >http://example.ru/index.php?type=122&idF=34
    >или
    >http://example.ru/index.php?type=122&idF=34&idF1=119
    >ну и так далее ...
    >Что можно сделать с такого рода ссылками.
    >Хотелось бы преобразовать во что-то вроде
    >http://example.ru/**/**/index.html
    >Возможно ли такое, и как ?
    >
    >Заранее спасибо :)

    например
    http://example.ru/123/456/index.html переходим на
    RewriteRule ^(\d+)/(\d+)/index.html$ /index.php?type=$1&idF=$2
    где
    $1 = 123
    $2 = 456

     

  • 1.11, Kirill (??), 12:22, 21/04/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Добрый день! Подскажите, рожалуйста как
    мне сделать такой редирект
    к примеру
    www.test.com/) со скобкой на конце,
    на www.test.com
     
  • 1.12, ZeNoN (?), 22:00, 23/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Подскажите, а если я поменял хостинг и доменное имя, и мне нужно, чтоб все кто идёт на http://all4u.ho.com.ua/category/girls/ попадали на http://all4u.com.ua/category/girls/ короче, чтоб не только в єту атегорию, а в любую соответствующую той, что на старом хостинге, те.е
    http://all4u.ho.com.ua/любая страница.html на http://all4u.com.ua/любая страница.html . спасибо. Напишите пожалуйста
     
  • 1.16, Юрий (??), 00:04, 13/06/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот даю тему есть у меня написано в .htaccess правило. все работает. но надо еще одно сделать для совершенно другого случая как это делается?
    Каждый из кодов работает правильно, но если я их прицепляю один к другому последовательно - перестает нафиг работать.
     
  • 1.17, JackyBrown (?), 23:46, 11/11/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Есть такой сервис для автоматической генерации редиректа:
    http://iframe.in

    Там же статья о том как сделать редирект разными способами на разных языках:
    http://iframe.in/howto/make-browser-redirect/

     
  • 1.19, Андрей (??), 12:23, 21/01/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вопрос следующий.
    Написали свою CMS.
    Работает так, что все запросы идут на index.php, где он подгрудает нужный модуль обработки и вызывает нужный шаблон SMARTY.

    Заказчик попросил сделать прсевдостатику, причём так, чтоб все страницы с его оригинального сайта сохранились (PR 3 у него там...)

    В общем, проблема такая:
    Обычные страницы вызываеются таким запросом - /?page=<название страницы>
    Есть раздел СТАТЬИ, которые вызываются - /?page=articles&id=<код статьи, или название страницы>
    Так вот, мне надо написать следующие в .htaccess:
    При обращении адреса "<A-Za-z0-9+>.html" проверялось, существует ли URL - ?page=<название страницы>.
    Если не существует (а мой индекс возвращает ошибку 404 при этом), то пробует запрос вида /?page=articles&id=<код статьи, или название страницы>.
    С этим модулем я не имею большого опрыта работы, могу делать только простые вещи.
    Но вот что придумал по примерам и справочникам:

    RewriteEngine on
    Options +FollowSymlinks
    RewriteBase /
    RewriteRule ^.htaccess$ - [F]
    #Проверяю, существует ли такой URL
    RewriteCond   ^(.*)$ -U
    # Если да, то обращается по такому запросу и прерываем
    RewriteRule ^([A-Za-z0-9]+).html$ ?page=$1 [L]
    # Если предыдущее условие не выполнилось, обращаемся сюда.
    RewriteRule ^([A-Za-z0-9]+).html$ ?page=article&id=$1 [L]
    # Это уже не важно, проверил, работает нормально...
    RewriteRule ^news-([A-Za-z0-9]+).html$ ?page=news&p=$1 [L]
    RewriteRule ^news-([A-Za-z0-9]+)-([A-Za-z0-9]+).html$ ?page=read_news&news_id=$1&p=$2 [L]


    Как я написал, нижняя часть работает нормально, а вот верхняя - не совсем.
    По справочнику я проверил, что "-F" проверяем наличие файла непосредственно на сервере с таким названием.
    А "-U" проверяет работоспособность URL. Правда, я не до конца уверен, что я правильно понял назначение этого флага.

    Пожалуйста, кто сталкивался, или есть какие-то мысли, подскажите как сделать правильно.

    Жду ответа.
    Заранее, спасибо.

     
  • 1.21, Sellbot (?), 19:59, 04/10/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    http://iframe.in сдох... вот аналог
    http://iframer.ru/
     
  • 1.22, alexey (??), 16:38, 18/10/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Рекомендую почитать http://beget.ru/art10.html
    ну и про сам htacceess http://beget.ru/art9.html
     
  • 1.26, Борис (??), 23:18, 08/07/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Подскажите плиз!

    есть ссылка

    mysite.com/?user=myname

    как сделать чтобы ссылка преобразовывалась в
    mysite.com/myname

    без каких либо расширений. просто /myname

    Вижу что вы отвечаете на комментарии.

    Буду очень благодарен если ответите и на мой. Спасибо!

     
  • 1.29, Виктор (??), 10:49, 08/10/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Здравствуйте.
    Есть такая ситуация- если в htacces пишу RewriteRule ^translit.html$ , попадаю на  $1http://mysite.ru/index.php, если пишу RewriteRule ^по-русски.html$ то выдает ошибку 404. Что можно сделать?
     
  • 1.30, Lisa (??), 01:09, 18/12/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А вот сделать что бы когда любой адрес в котором есть директория com_muscol люббой адрес который начинался бы вот так
    http://site.com/index.php?option=com_muscol
    сделать редирект 303 или 404 или на главную не получаться, во всяком случае у меня
    Помогите а то дублей развелось много
     
  • 1.31, Владимир (??), 03:12, 17/03/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Здравствуйте,
    Подскажите пожалуйста как переделать относительные ссылки в абсолютные?
    Спасибо.
     
     
  • 2.32, Michael Shigorin (ok), 20:58, 17/03/2013 [^] [^^] [^^^] [ответить]  
  • +/
    > Подскажите пожалуйста как переделать относительные ссылки в абсолютные?

    google://html relative absolute hyperlinks
    '-> http://stackoverflow.com/questions/545227/converting-relative-links-to-absolu

    Если погуглить Ваш вопрос как есть, тоже минимум две странички с обсуждением сходу наблюдаются...

    Если не статика -- ещё можно копнуть через mnogosearch и сопутствующие утилиты/библиотеки.  Смутно припоминается, что там много полезного в подобных случаях было.

     

  • 1.33, Антон (??), 22:56, 29/04/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    какой код нужно вставить в htaccess чтобы преобразовать это: http://site.net/category.php в http://site.net/cat ? подскажите пожалуйста, вот уже месяц если не больше ищу а ответу не могу найти(
     
  • 1.34, Сергей (??), 08:38, 01/07/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Спасибо огромное за статью!
    Но я, все же, не могу справиться со своей задачей.
    Заменить группу правил, которые работают:
    RewriteCond %{QUERY_STRING} ^firma_kond=11$
    RewriteRule ^split_systems_daikin.php /split_systems_daikin.php? [R=301,L]
    RewriteCond %{QUERY_STRING} ^firma_kond=11$
    RewriteRule ^cassette_conditioners_daikin.php /cassette_conditioners_daikin.php? [R=301,L]
    RewriteCond %{QUERY_STRING} ^firma_kond=11$
    RewriteRule ^channel_conditioners_daikin.php /channel_conditioners_daikin.php? [R=301,L]

    на одно правило с использованием регулярных выражений:

    RewriteCond %{QUERY_STRING} ^firma_kond=11$
    RewriteRule ^(.*).php?(.*)$ /$1.php? [R=301,L]

    Подскажите, пожалуйста, в чем ошибка.

     
  • 1.35, ivan (??), 14:32, 07/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Может мне кто подскажет;)

    есть строка вида:

    http://site.ru/rubrika1/page1.html
    http://site.ru/rubrika2/page235445.html

    нужно сделать 301 редирект на строки вида:
    http://site.ru/page/page1
    http://site.ru/page/page235445

    тобишь нужно все рубрики (около 20штук) заменить на "page/" и в конце убрать ".html"

    также есть строки с разделами
    http://site.ru/razdel/rubrika1
    http://site.ru/razdel/rubrika2

    их нужно привести к такому виду:
    http://site.ru/category/rubrika1
    http://site.ru/category/rubrika2

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

     
  • 1.36, vladislavvitalevich (?), 12:36, 09/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Подскажите плс - Нужно запретить скачивание видео на сайте - только просмотр... .HTACCES поможет мне?
     

    лог модерирования

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру