Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Apache+mod_rewrite

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Открыть новую тему     Написать ответ в эту тему

Vanya

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Значит так-с. (АПАЧ)
Есть такая конструкция http://domain.ru/?id=1
Надо чтобы была такая http://domain.ru/chapter1 ну или http://domain.ru/1
И ко всему прочему, чтобы это еще и работало. Есть такой механизЬм mod_rewrite и что то типа RwriteEngine on прописывается в .htaccess Но как это настраивается чтобы было как мне надо, я не знаю. Кто сможет чем помочь?
 
 


FAQ по Apache
Apache + mod_rewrite: замена ссылок
Руководство по URL преобразованиям
Модуль Apache mod_rewrite - подробнейшее описание на русском

Всего записей: 8 | Зарегистр. 19-09-2002 | Отправлено: 08:53 30-10-2002 | Исправлено: lynx, 01:01 15-02-2004
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
israel_rider
что значит 'получить'?
Прописываете директиву логгирования с путем к файлу, перезапускаете сервер и смотрите

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 09:03 10-09-2009
israel_rider

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cheery, плиз, пример, как должна выглядеть эта директива? Остальное я найду по мануалу.

Всего записей: 925 | Зарегистр. 28-07-2007 | Отправлено: 09:08 10-09-2009 | Исправлено: israel_rider, 09:09 10-09-2009
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
israel_rider
неужели сложно заглянуть в документацию модуля?? Там все написано и перечислены все возможные директивы

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 09:10 10-09-2009
alpolle



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
никак не разберусь...
помогите плиз...
есть сайт: site.ru (работает на Апаче), также есть сайт внутри сети на IIS - 192.168.1.0:8080
внутреннему сайту в днс-ах присваиваем имя forum.site.ru.
сделать редирект на него с внешней сети - не проблема, но вот как сделать так, чтобы в адресной строке браузера после редректа не выводило айпишник внутренний, а чтобы эта строка заменялась на forum.site.ru???
всю голову себе изломал...

Всего записей: 13 | Зарегистр. 25-10-2005 | Отправлено: 17:43 06-11-2009
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
всем првиет.
кто подскажет почему может не срабатывать 1 правило ?
пришлось всё превести на 2-ое.

Цитата:
 
RewriteRule ^get_file/([^/]*)/(.*)$ /get_file.php?sg_id=$1&file=$2 [L,QSA]
RewriteRule ^get_file2/([^/]*)/(.*)$ /get_file.php?sg_id=$1&file=$2 [L,QSA]
 

 
спасибо

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 14:25 10-02-2010
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
проблема ткого плана
 
Не срабатывает mod_rewrite если в корне папки присутвует php файл с таким же именем что и преобразуемное выражение
 
диагноз такой - не работают те правила, для которых в руте есть пхп файлы.
 

Цитата:
RewriteRule ^get_file/([^/]*)/(.*)$ /get_file.php?sg_id=$1&file=$2 [L,QSA]

не сработает с get_file.php но сработает с get_file2.php(если изменить соответсвенно правило)
 
может есть какие настройки котрые на это влияют ?
 
Ubuntu 9.10 Apache2 mod_rewrite

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 00:45 11-02-2010
DmitryV



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите как заставить запрос типа /%BB или /%%%% завернуть на определенный файл?
RewriteRule ^.*$ index.php  - не помогает.

Всего записей: 1254 | Зарегистр. 12-01-2003 | Отправлено: 22:40 05-04-2010 | Исправлено: DmitryV, 22:49 05-04-2010
klimusu



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужно сделать реврайт с http://site.com/forum на http://forum.site.com
RewriteEngine on
RewriteBase /forum/
RewriteRule ^/(.+)$ http://%{HTTP_HOST}%{QUERY_STRING} [L]
 
все равно подставляет http://forum.site.com/forum
 
как быть?

Всего записей: 931 | Зарегистр. 23-01-2006 | Отправлено: 10:28 05-10-2010
hrushka



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте уважаемые форумчане.  
 
Прошу сильно не ругать новичка, возможно уже это обсуждалось и не раз, но почти сутки терзания яндекса и гугла, привели меня сюда. Я уже этот вопрос задавал на ответах в гугле, но пока тишина. Вот что меня интересует  
В яндексе и в гугле есть такие страницы  www.mail.мойдомен.ru/soft/winrar.html   forum.мойдомен.ru/soft/winrar.html    www.mail.forum.мойдомен.ru/soft/winrar.html    и еще куча разных комбинаций, при обращении по таким адресам попадаешь на http://мойдомен.ru/soft/winrar.html    После общения с хостером такие адреса стали выдавать "Internet Explorer не может отобразить эту веб-страницу"  как с помощью .htacces сделать что бы при заходе с поисковиков посетитель попадал на http://мойдомен.ru/soft/winrar.html     с сохранением всего что идет после ru  например было http://mail.forum.мойдомен.ru/soft/winrar.html   стало  http://мойдомен.ru/soft/winrar.html     грубо говоря нужно обрезать все что находится перед мойдомен.ru Страницы динамические, движок DLE, ЧПУ включен.  а это кусок самого .htacces  
 
 
Цитата:php_value arg_separator.output "&"  
AddHandler server-parsed .htm  
php_value register_globals Off  
Options -Indexes  
Options -MultiViews  
DirectoryIndex index.php index.html index.htm admin.html  
 
RewriteEngine On  
RewriteBase /  
# www  
RewriteCond %{HTTP_HOST} ^www\.([^.]+\.ru)$ [NC]  
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]  
#index.php  
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/  
RewriteRule ^index\.php$ http://admydoor.ru/ [R=301,L]  
 
последнии 8 строк вместе с коментариями это уже я сам добавил, может слишком длиино получилось, но хотел обяснить по подробнее. И еще посылать меня на прочитай тут уже не поможет, мозг расплавился от чтения всего этого. Если кто может написать конкретный пример для моего случая, буду очень благодарен. Спасибо. С уважением Анатолий.

Всего записей: 25 | Зарегистр. 11-08-2004 | Отправлено: 12:36 28-01-2011 | Исправлено: hrushka, 13:17 28-01-2011
alexbel31

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте! Вопрос по mod_rewrite. Есть система на debian, стоит apache. Вообщем подключил модуль командой a2enmod rewrite, поправил файл /etc/apache2/sites-enabled/000-default, т.е. изменил Allow Override None на All, вписал в файле .htaccess RewriteEngine On  и правило:
RewriteRule ^news/([A-Za-z0-9]+)$ view_news.php?id=$1
Вообщем проблема в том, что урл никак не хочет преобразовываться в нужный мне, пробовал разные правила, ничего не помогает.  
 
p.s. файл .htaccess сервером читается.

Всего записей: 32 | Зарегистр. 23-01-2009 | Отправлено: 10:21 11-03-2011
Adm123

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Все, сдаюсь! Самому не разобраться...
Поможите, люди добрые..!
 
Требуется в .htaccess сделать переадресацию таким образом, чтобы http://site.ru/folder/index.php заменялось на http://site.ru/folder/ (т.е. без index.php). Для корня сайта работает конструкция
 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/  
RewriteRule ^index\.php$ http://%{HTTP_HOST}/ [R=301,L]
 
А как для папки такое сделать?
 
Физическое существование папки не приципиально (хотя предпочтительно, если это возможно, обойтись без такового).
 
Заранее спасибо!

Всего записей: 5 | Зарегистр. 04-02-2008 | Отправлено: 09:40 20-04-2011
Mikanoshi



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
А как для папки такое сделать?

Если для одной папки:

Код:
RewriteBase /folder/
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /folder/index\.php\ HTTP/
RewriteRule ^index\.php$ http://%{HTTP_HOST}/folder/ [R=301,L]

 
А если для всех, это наверно надо из DirectoryIndex вообще убрать index.php и написать правило самому.

Всего записей: 66 | Зарегистр. 13-06-2011 | Отправлено: 15:18 14-06-2011
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Adm123 По умолчанию http://site.ru/folder/ и так будет работать. Если там есть один из соответствующих файлов, (index.html, index.php, index.cgi и т.п.) прописанных в глобальном DirectoryIndex


----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17273 | Зарегистр. 13-06-2007 | Отправлено: 18:24 14-06-2011
ikar2006



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужна помощь.
Имеется старая htm версия сайта.
В структуре сайта (как западло имеется папка index.php).
Была поставлена задача переделать сайт на Wordpress. Но вот в чем проблема в WP имеется файл index.php.
Папку  index.php нельзя переименовывать т.к. сайт находится в индексе.
1. В WP переименовал файл  index.php на  index1.php
2. на Денвере в фале httpd.conf прописал его первым.
<IfModule dir_module>
    DirectoryIndex index1.php index.php index.htm index.html index.shtm index.shtml
</IfModule>
3. файл .htaccess для сайта на WP имеет вид
 
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index1.php [L]
</IfModule>
 
# END WordPress
На девере у меня все заработало и сайт на WP и ссылки на старую версию сайта. Но на хостинге работает только старая версия сайта.
 
У меня вопрос если в настройках хостинга изменить  DirectoryIndex как это може повлиять на остальные 300 сайтов которые находятся на хостинге ?
 

Всего записей: 574 | Зарегистр. 30-11-2006 | Отправлено: 01:15 12-10-2011
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Отвечая на свой вопрос:

Цитата:
Не срабатывает mod_rewrite если в корне папки присутвует php файл с таким же именем что и преобразуемное выражение

-MultiViews - решило проблему.

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 00:03 19-05-2012
Tnav

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
всем привет.
 
такой вопрос
можно ли через .htaccess настроить редирект с домена:порт на домен2:порт ?
порты разные
 
PS
я далёк от сабжа, а нужно мне это, что бы по домену можно было коннектиться к cs серверу (=

Всего записей: 472 | Зарегистр. 01-08-2006 | Отправлено: 03:47 18-06-2012
Laterport



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста, как сделать следующую вещь...  
 
1. Чтобы при обращении к "файл.php" пропускало, а при указании "файл.php/" выбивало ошибку типа "404 Not Found"  

Всего записей: 171 | Зарегистр. 09-02-2012 | Отправлено: 20:17 23-03-2013
nightfearr

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RewriteRule подходящего для себя я не нашел на 16 страницах темы, ну или мне так показалось. По этому напишу свой случай.
 
Всем привет, уже 2 дня бьюсь над проблемой создания условия, которое превращало бы ссылку типа:  
http://www.site.com.ua/?category=name  
в:  
http://www.site.com.ua/name.  
 
Вот мое представление как оно должно быть:  
 
RewriteEngine On  
RewriteCond %{HTTP_HOST} ^site.com.ua  
RewriteRule (.*) http://www.site.com.ua/$1 [R=301,L]  
RewriteCond %{QUERY_STRING} ^$  
RewriteRule ^index.php$ / [R=301]  
 
RewriteCond %{REQUEST_URI} ^/([0-9A-Za-z.]+)$  
RewriteRule .* http://www.site.com.ua/?category=%1 [R=301,L]  
 
Кто-то может подсказать, что не так?

Всего записей: 3 | Зарегистр. 30-08-2013 | Отправлено: 16:18 30-08-2013
prestigo

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
добра всем
 
очень интересен формат rewritelog
сам честно говоря ничего связного так и не нагуглил
интересует понимание каждого действия + фактическая последовательность преобразований над URL (да, там есть в логе какие-то цифирьки, но только вот допустим (1) - это самое первое действие? если да, то какое из них первее - потому что таких вот (цифра) бывает несколько?..)

Всего записей: 314 | Зарегистр. 03-09-2006 | Отправлено: 14:35 05-01-2014
memo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос как-бы простой...
 
Нужно сделать такое перенаправление:
 
1 www.site1.com/dir --> http://site2.com/dir
 
2. site1.com/dir --> http://site2.lt/dir
 
cPanel генератор создаёт такой скрипик:
 
RewriteEngine On
RewriteCond %{HTTP_HOST} ^site1\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.site1\.com$
RewriteRule ^dir\/?$ "http\:\/\/site2\.com\/dir" [R=301,L]
 
 
Вроде всё правильно, но переадресация не работает:
 
http://www.site1.com/dir/modules/sections/index.php?op=viewarticle&artid=40
http://www.site1.com/dir/modules/sections/index.php?op=viewarticle&artid=39
http://www.site1.com/dir/modules/sections/index.php?op=viewarticle&artid=37
...и т.д.
 
Нет перенаправления на:
 
http://site2.com/dir/modules/sections/index.php?op=viewarticle&artid=40
http://site2.com/dir/modules/sections/index.php?op=viewarticle&artid=39
http://site2.com/dir/modules/sections/index.php?op=viewarticle&artid=37
 
Где может быть ошибка?  
Может быть на хосте что-то не так прописано?

Всего записей: 663 | Зарегистр. 10-08-2004 | Отправлено: 16:00 10-09-2015 | Исправлено: memo, 16:04 10-09-2015
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Apache+mod_rewrite


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru