Apache Правила перезаписи Xiangjie
До открытия:
Я хочу сказать, эта статья, когда я только тронь переписать документацию обучения, должны быть воспроизведены, но здесь я не хочу, чтобы указать исходный адрес, поскольку конфигурация статье дается для большинства экспериментов не правы. Необходимость первоначальный текст в Google поиск по теме "Правила перезаписи Apache 详解"
К счастью, я понимаю, регулярные выражения, исходный код можно переписать через свое собственное понимание того, что и в состоянии удовлетворить требованиям поставленных задач, и Lenovo добавила спрос на примере.
Это после того, как изменение эффективно после эксперимента, если ошибка все равно происходит, пожалуйста, удалите # и 500 комментариев позднее (и, возможно, некоторые из окружающей среды не поддерживает китайский перевод), если они еще ошибкой, пожалуйста, дайте мне сообщение.
1, правила перезаписи Описание:
Rewirte основная функция заключается в реализации URL из прыжка, она основана на Perl язык регулярных выражений. Может быть основана на уровне сервера (httpd.conf) и каталогов уровня (. Htaccess) в двух направлениях. Для того чтобы использовать переписать модуль, необходимо сначала установить или загрузить переписать модуль. Есть два пути, когда одна непосредственно составлен Apache переписать модуль установлен, когда другая является Apache собран с режима DSO для установки Apache, а затем использовать apxs установить источник и переписать модуль.
На основании уровне сервера (httpd.conf) Есть два пути, один находится в непосредственном использовании глобальной httpd.conf RewriteEngine на открытые функции перезаписи, а другая используется на местном RewriteEngine на открытые функции перезаписи, следующие меры: будет свидетельствуют о необходимости обратить ваше внимание на необходимость в каждом VirtualHost используется RewriteEngine на открытые функции перезаписи. В противном случае, Есть не VirtualHost RewriteEngine на него в правила не вступили в силу.
На основании каталога уровня (. Htaccess), следует отметить, что это открыть эту собственность каталог FollowSymLinks и в. Htaccess, чтобы объявить о RewriteEngine.
2 Например:
Пример One. Вот определение виртуальных хостов в правилах. Функция на запрос клиента принимающей префикс не www.kiya.cn 70.40.213.183 и есть переход к http://www.kiya.cn префикс хозяина, избежать же содержание страниц более чем одной точки имя домена, таких как HTTP: / / kiya.cn.
NameVirtualHost 70.40.213.183:80
ServerAdmin slj@kiya.cn
DocumentRoot "/ Сети"
Имя_сервера kiya.cnRewriteEngine On # включить функцию rewirte
RewriteCond% (HTTP_HOST)! ^ Www.kiya.cn [NC] # заявление хостов просьбе префикс не www.kiya.cn, что [NC] означает чувствительны к регистру
RewriteCond% (HTTP_HOST)! ^ 70.40.213.183 [NC] # заявлению Клиента префикс хост не просить для 70.40.213.183, что [NC] означает чувствительны к регистру
RewriteCond% (HTTP_HOST)! ^ $ # Заявление хостов просьбе префикс не пустой
RewriteRule ^(.*) http://www.kiya.cn/ [L] # означает, что если клиент просит множество префиксов отвечают вышеуказанным условиям, то перейти непосредственно к http://www.kiya.cn/ , [L] означает немедленное прекращение операций перезаписи, и больше не применяются другие правила перезаписи. Где .* не URL не содержит весь матч строки символов () скобки, функции всех символов, чтобы знак, с тем чтобы облегчить применение назад. Является ли упоминание в передней части (.*) характер.
Пример второй. En.sicasoft.com доменное имя будет введено Перейти к www.sicasoft.com
RewriteEngine на
RewriteCond% (HTTP_HOST) ^ en.sicasoft.com [NC]
RewriteRule ^(.*) http://www.sicasoft.com/ [L]
Дела 3. Бегов программного обеспечения в последнее время изменилось название, новые www.sicasoft.com доменное имя, более короткие легко запомнить. Тогда нужен оригинал ss.kiya.cn доменных имен и форумах, где адрес ss.kiya.cn / BBS /, направленных на новое доменное имя, чтобы пользователи могли найти и сделать оригинальный форум URL-прежнему существуют эффективные, но не 404 не найден такие, как оригинальный http://ss.kiya.cn/bbs/tread-60.html, новое доменное имя, он будет оставаться в силе после нажатия ожидает http://bbs.sicasoft.com/tread-60. HTML и другие страницы, такие как оригинальные http://ss.kiya.cn/purchase не идти на второй bbs.sicasoft.com уровне домена / продаже, а к www.sicasoft.com / продаже
В соответствии с требованиями настоящего перенаправлен должно быть написано:
RewriteEngine On
RewriteCond% (REQUEST_URI) ^ / BBS /
RewriteRule ^ BBS /(.*) http://bbs.sicasoft.com/ $ 1 [R = постоянный, L]
RewriteCond% (REQUEST_URI)! ^ / BBS /
RewriteRule ^(.*) http://www.sicasoft.com/ $ 1 [R = постоянный, L]
3.Apache mod_rewrite правила перезаписи символ список
1) R [= код] (форс-перенаправление) перенаправить силу внешних сил с http://thishost [строка замены: thisport] / префикс перенаправлять на внешний URL. Если код не указан, будет использоваться по умолчанию 302 HTTP код статуса.
2) F (сила URL запрещенным), чтобы отключить URL, возвращение 403HTTP код состояния.
3) G (сила URL с отъездом) в силу URL GONE, возвращение 410HTTP код состояния.
4) P (форс-прокси), обязательное использование прокси-экспедирования.
5) L (последнее правило) показывает, что нынешнее правило, является последним правило, остановить анализ после переписать правила.
6) N (следующий раунд) вновь начал с первого запуска процесса переписывания правил.
7) C (прикованный со следующим правилом), связанные с правило, согласноЕсли правила соответствуют нормальной обработки, флаг является недействительным, если не совпадают, то следующие правила, чтобы пропустить все связанные с ним.
8) T = MIME-тип (тип силы MIME) обязательного типа MIME
9) NS (используется только если нет внутреннего подзапроса) не только для внутреннего подзапроса
10) NC (коем случае) не чувствительны к регистру
11) QSA (строка запроса добавить) строку запроса прилагается
12) NE (URI не избежать продукции), не выход избежать специальных символов, таких как: RewriteRule / Foo /(.*) / бар? Arg = P1 3d% $ 1 [R, Н.] будет в состоянии исправить / Foo / зоопарк преобразования а / бар? агд = P1 = зоопарк
13) PT (пройти на следующий обработчик) прошли на следующий обработки, таких как:
RewriteRule ^ / ABC (.*) / Def $ 1 [PT] # будет переведен в / Def правил
Alias / DEF / Джи
14) S = пит (пропустить следующее правило (ы)), чтобы пропустить правило пит
15) E = VAR: VAL (установить переменную окружения), чтобы установить переменные окружения
4.Apache переписать пример,
URL перенаправления
Один пример:
В то же время отвечать следующим двум требованиям:
1. С http://www.zzz.com/xxx.php доступ к http://www.zzz.com/xxx/
Два. Http: / / www.zzz.com/user.php?username=yyy с http://yyy.zzz.com для доступа к функциям
RewriteEngine On
RewriteCond% (HTTP_HOST) ^ www.zzz.com
RewriteCond% (REQUEST_URI)! ^ User.php $
RewriteCond% (REQUEST_URI). PHP $
RewriteRule (.*). PHP $ http://www.zzz.com/ $ 1 / [R]
RewriteCond% (HTTP_HOST)! ^ Www.zzz.com
RewriteRule ^(.+)% (HTTP_HOST) [C]
RewriteRule ^([^.]+). zzz.com http://www.zzz.com/user.php?username = $ 1
Пример 2:
/ Type.php? Typeid =* -> / типа *. HTML
/ Type.php? Typeid =* и страницы =* -> / тип страницы * *. HTML
RewriteRule ^ / тип ([0-9] +). Сайтов $ / type.php? Typeid = $ 1 [PT]
RewriteRule ^ / тип ([0-9] +) страницы ([0-9] +). Сайтов $ / type.php? Typeid = $ 1 и странице = $ 2 [PT]
5. URL Rewrite использованием пользователей Apache мульти виртуальных серверов
Чтобы реализовать эту функцию, мы должны открыть доменное имя DNS сервера, резолюция доменное имя сковороде (или найти свое доменное имя поставщика услуг, сделать это). Например, я положил *. kiya.us и *. kiya.cn все решения в адрес IP 70.40.213.183 на меня.
Затем, взглянув в мою Apache виртуальные хосты на *. kiya.us настройки.
ServerAdmin webmaster@kiya.us
DocumentRoot / дом / WWW / www.kiya.us
Имя_сервера dns.kiya.us
ServerAlias dns.kiya.us kiya.us *. kiya.us
CustomLog / VAR / Журнал / HTTPD / OSA / access_log.log "общей
ErrorLog / VAR / Журнал / HTTPD / OSA / error_log.log "
AllowOverride None
Заказ отрицать, позволяют# AddDefaultCharset GB2312
RewriteEngine на
RewriteCond% (HTTP_HOST) ^[^.]+. Кия. (Сп | нам) $
RewriteRule ^(.+)% (HTTP_HOST) $ 1 [C]
RewriteRule ^([^.]+). Кия. (Сп | нас )(.*)$ / главная / WWW / www.kiya.us / Сильван $ 3? Un = 1 $ и% (QUERY_STRING) [L]
В этих условиях, я *. kiya.cn и *. kiya.us корень документа установлен в / главная / WWW / www.kiya.us
Читайте дальше, здесь я настроить правила перезаписи URL.
RewriteEngine на # Открыть URL Rewrite Функция
RewriteCond% (HTTP_HOST) ^[^.]+. Кия. (Сп | нас) $ # соответствуют условиям, если пользователь вводит URL в имя хоста, похож на xxxx.kiya.us или xxxx.kiya.cn об осуществлении следующее предложение
RewriteRule ^(.+)% (HTTP_HOST) $ 1 [C] # пользователю ввести полный адрес (GET метод, за исключением параметров) в качестве параметра передается следующему правилу, [C] является правилом Сеть значит, что следующая серия
RewriteRule ^([^.]+). Кия. (Сп | нас )(.*)$ / главная / WWW / dev.kiya.us / Сильван $ 3? Un = 1 $ и% (QUERY_STRING) [L]
# Клавиша это один, используя аналитические выражения позволяют пользователю ввести URL-адрес, имя хоста сведения о пользователе, как параметр, который называется ООН годен / дом / WWW / dev.kiya.us скрипт каталога и в обратный путь, чтобы идти в ногу с пользовательского ввода входящих GET параметра. И указать, это последнее правило ([L] правило). Обратите внимание, что в этом предложении, после перезаписи на адрес, указанный на сервере, используя абсолютный путь, который входит в прыжок. Если этот URL http://xxxx форматов называются внешние прыжок. Внешние прыжок, а затем просматривать URL адреса браузера превратится в новый адрес, а также использовать внутренний скачок в адрес браузера не изменится, больше похоже на реальный виртуальный вторичный сервер доменных имен.
После перезагрузки сервера Apache установлен на это!
Обновление 1 мая 2009
Сегодня Интернет, чтобы кто-то задать вопрос:
Перепишите Анти-Daolian ищут не допускается www.im286.com www.chinaz.com Daolian обоих сайтах, другие сайты могут Daolian, как писать правила.
RewriteEngine On
RewriteCond% (HTTP_REFERER) chinaz.com [NC]
RewriteCond% (HTTP_REFERER) im286.com [NC]
RewriteRule .* \. (Jpg | JPEG | GIF | PNG | | RAR ZIP | TXT | туз | поток | GZ | швейцарских франков) $ http://www.xxx.com/fuck.png [R, NC, L]
Обновление 7 мая 2009
Введение статьи: http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mod_rewrite.html
Обновление 24 мая 2009
I, о необходимости в полной мере использовать бежать, как и в RewriteCond% (HTTP_REFERER) chinaz.com [NC] в chinaz.com в Чиназ \. Com
Ответ на этот вопрос, как может.
Во-вторых, сегодня, делает YOURcaddy.com (то, что я сделал в прошлом году PlanetCoachella деформации), когда хозяин на GoDaddy не может должным образом свою очередь, затем нашли проблему:
В HostMonster и моей машины,
RewriteRule ^ бизнес / ([^ \ .]+)$ бизнес / detail.php? Название = $ 1 [L]
Чтобы переписать. В принимающих Godaddy, заключается в следующем:
RewriteRule ^ бизнес / ([^ \ .]+)$ / бизнес / detail.php? Название = $ 1 [L]
Еще до конечного файла /
Теперь подумайте об этом, вероятно, из-за отсутствия назначенного RewriteBase, потому что в конце это не я снова испытать еще один день.
В-третьих, добавить два примера на судью User Agent и автоматически добавляются. Php расширение и автоматически изменится. Сайтов для. Например, расширение PHP:
1
RewriteEngine на
RewriteCond% (HTTP_USER_AGENT) ^ MSIE [NC, OR]
RewriteCond% (HTTP_USER_AGENT) ^ оперы [NC]
RewriteRule ^ .* - [F, L], где "-" означает отсутствие замены для IE и Опера браузеры посетителей будет запрещен доступ.
2
RewriteEngine On
RewriteBase / тест
RewriteCond% (REQUEST_FILENAME). PHP-е
RewriteRule ([^/]+)$ / испытание / $ 1.php
# Например: / тест / администратора => / тест / admin.php
RewriteRule ([^/]+) \. Сайтов $ / тест / $ 1.php [L]
# Например: / тест / admin.html => / тест / admin.phpПредельные каталог может отображать только фотографии
<IfModule Mod_rewrite.c>
RewriteEngine на
RewriteCond% (REQUEST_FILENAME)! ^ .* \. (GIF | JPG | JPEG | PNG | швейцарских франков) $
RewriteRule .* $ - [F, L]
</ IfModule>
Обновление 10 июня 2009
Добавлено переписывания частности расширение файла.
Перепишите некоторыми расширениями:
RewriteRule (.*. CSS $|.*. JS $) gzip.php? $ 1 [L]
Если вы хотите исключить ряд расширений:
RewriteRule! \. (J | ш | GIF | JPG | JPG | PNG | PNG | CSS | PDF | SWF) $ index.php

22 Комментарии
Я хочу комментироватьFollowSymLinks необходимо открыть каталог атрибуты?? Где открытым
Функции FollowSymLinks в httpd.conf
ErrorDocument 404 / 404.php ErrorDocument 500 / 404.php DocumentRoot "D: / WWW" ServerName все сайты RewriteEngine на RewriteCond% (HTTP_HOST) ^ [A-z0-9 \ -] + \. Abc \. Сп $ RewriteRule ^ /(.*)$ /% (SERVER_NAME) / $ 1 RewriteRule ^ / ([-z0-9 \ -] +) \. ABC \. сп /(.*)$ D: / WWW / $ 1 / $ 2 [L ] RewriteRule ^ .* $ / index.php [L] хостов 192.168.1.2 файл ...
Мастер ~ ~ теги вопрос страницу 301 редирект. Все так www.liucheng.name/?tag=ncbi 301 до http://liucheng.name/tag/ncbi/. Htaccess, как писать его в ?
RewriteRule ^/(.+)/(.+) http://www.liucheng.name/? $ 1 = $ 2 [R = постоянный, L], чтобы HTTP 301 с [R = постоянный, L] или [R = 301, L]
RewriteEngine On RewriteCond% (REQUEST_URI) ^ / BBS / RewriteRule ^ BBS /(.*) http://bbs.sicasoft.com/ $ 1 [R = постоянный, L] RewriteCond% (REQUEST_URI)! ^ / BBS / RewriteRule ^ ( .*) http://www.sicasoft.com/ $ 1 [R = постоянный, L] Почему я пишу по мере приближения к машине я бы 2 / / например, первоначально http://www.sicasoft.com / стала http://www.sicasoft.com//
Недавно компания изменила сервер, хотят apache2.x и tomcat6 интеграции в окне Server2003 окружающей среды, много данных, поиск, интеграция не очень гладко. Конечно, главная проблема достигается за счет Apache переписать функции доменного имени, такие как www.xxx.soft.com реальной точки www.soft.com / ххх ххх найти в соответствующей папке.
Я пытался добиться этого функциональность переписать результаты не очень хорошие, скрипт на Пан-разрешение, а затем определить запрос в сценарии, или перейти непосредственно связанные с осуществлением дисплей лучше, в настоящее время преобладала.
Здравствуйте, недавно переименованного в сайт, я хочу, чтобы перейти на сайт bbs.BBB.com bbs.AAA.com, www.AAA.com к www.BBB.com AAA.com к BBB.com я пишу эти строки : (WWW успешной, BBS недействительными) ...
Попробуйте RewriteCond% (HTTP_HOST) ^ bbs.AAA.com [NC] RewriteRule ^(.*)$ http://bbs.BBB.com/ $ 1 [R = 301, NC] RewriteCond% (HTTP_HOST) ^ WWW. AAA.com [NC] RewriteRule ^(.*)$ http://www.BBB.com/ $ 1 [R = 301, NC]
Спасибо за ответ, или не делать Oh. Пожалуйста, помогите мне увидеть bbs.brandhb.com прыгать bbs.hd00.com
RewriteCond% (HTTP_HOST) ^ BBS \. Brandhb \. Com [NC] RewriteRule ^(.*)$ http://bbs.hd00.com/ $ 1 [R = 301] должны быть в состоянии
Хорошая статья, спасибо за обмен
Если вы хотите сделать это призыв к просвещению статические результаты о том, как писать правила? Виртуальный статического http://www.kiya.cn/ ****** фактических динамических http://www.kiya.cn/index.php ? идентификатор =******
Hello. Например, так: RewriteEngine On RewriteRule ^(.+)$ index.php? Id = $ 1, но если вы хотите, чтобы ограничить содержание того, что вы сказали, как вы **** ограничить количество слов об этом: RewriteRule ^ ([0-9 ] +) $ index.php? ID = $ 1
Apach переписать можно переписать локального домена удаленного домена? Например я могу пойти на локальный адрес http://localhost:80/test www.baidu.com
Можно ах использования. Htaccess в письменной форме: RewriteEngine на тест RewriteRule ^ http://www.baidu.com/ вы пытаетесь увидеть не то, что вы хотите?
Приведенный выше код не судить использование доменного имени не локальный, если это так, чтобы добавить RewriteCond% (HTTP_HOST) ^ локальный [NC] Кроме того, вы можете создать тестовый каталог, создайте для передачи заголовка HTTP-302 файлов, таких как Если вы используете PHP, вы можете написать: <? PHP Header ("Место нахождения: http://www.baidu.com ");?>
Поблагодарил я с первой попытки.
Если файл JSP, то какие меры необходимо
Если это изменение. Htaccess слова и язык не относится к, если это JSP затем отправить HTTP 301 или 302 переадресацию сообщений
Ну одно добавил. . . . . . . Я хотел бы оставить этот скучный сообщение не будет бранить