Ru-Board.club
← Вернуться в раздел «Web-программирование»

» mod_rewrite: документация, готовые решения, вопросы

Автор: Mira
Дата сообщения: 14.04.2007 12:36

[R=301]
Цитата:
http://мой_сайт/articles.php редиректилась на http://мой_сайт/articles/

RewriteRule articles.php http://мой_сайт/articles/ [R=301]

по аналогии.


Добавлено:

Цитата:
RewriteRule ^.*articles/([0-9]*)/([0-9]*)\.htm articles.php?s=$2&r=$1


не знаю работает ли у вас этот код, но правильней так

RewriteRule ^articles/([0-9]*)/([0-9]*)\.htm$ /articles.php?s=$2&r=$1
Автор: Sozon
Дата сообщения: 14.04.2007 14:00
Mira, спасибо.

У меня еще одна проблема: вопросительный знак в URL

RedirectMatch permanent ^articles\.php?r=([0-9]*)$ http://мой_сайт/$1


Т.е. например правило
RedirectMatch permanent ^articles\.php&r=([0-9]*)$ http://мой_сайт/$1
работает без роблем, а как только в URL встречается "?", то начинаются проблемы.
Экранирование вопроса не помогает, т.е.
RedirectMatch permanent ^articles\.php\?r=([0-9]*)$ http://мой_сайт/$1
тоже не работает


====================================
У кого нибудь получалось работать с вопросительным знаком в URL?
Автор: aL_MIR
Дата сообщения: 20.04.2007 23:36
Всем доброго времени суток!
Был движок с кучой шаблонов картинок и тд (находящиеся в соответсвующих подкаталогах) теперь этот движок пришлось перенести в отдельный каталог, проблема в том что к ресурсам движок обращался с корня, поэтому теперь он не видит свои стили картинки и шаблоны... дайте пример htaccess чтоб исправить ситуацию

Поясняю на примере

было
/css/defaut.css
/img/index.gif
/index.php в нем прописано src="/img/h_1.jpg"

стало
/service/css/defaut.css
/service/img/index.gif
/service/index.php

заранее спасибо
Автор: Cheery
Дата сообщения: 20.04.2007 23:40
aL_MIR
RewriteCond %{REQUEST_URI} !^/service/
RewriteRule /(.*)$ /service/$1

что такое.. не проверял
Автор: aL_MIR
Дата сообщения: 20.04.2007 23:47
не работает, в логах пусто почемуто
Как нибудь влияет это

RewriteEngine on
RewriteBase /
RewriteRule !(^(_|index.php|admintools|robots.txt|services)) /index.php

которое прописано в корне? указанный вами htaccess помещал в подкаталог services
Автор: Cheery
Дата сообщения: 20.04.2007 23:50
aL_MIR

Цитата:
указанный вами htaccess помещал в подкаталог services

ну, и когда тогда он должен выполняться??
htaccess обрабатывается при заходе в директорию с ним.


Цитата:
которое прописано в корне?

ну так решить надо, чего хочется.. это перекидывает все, что не относится к тому, что в скобках, на index.php
Автор: aL_MIR
Дата сообщения: 20.04.2007 23:59
смысл в том что теперь у меня на сайте 2 движка
в корне такой htaccess

php_value error_reporting 7
RewriteEngine on
RewriteBase /
RewriteRule !(^(_|index.php|admintools|robots.txt|services)) /index.php

это чтоб работал правильно первый движок те не обрабатывал то что в указанных папках.
второй движок в папке service но там как я уже говорил все пути прописаны от корня
проще будет второй движок исправить?
Автор: Cheery
Дата сообщения: 21.04.2007 00:05
aL_MIR

Цитата:
смысл в том что теперь у меня на сайте 2 движка

ну и что?
поясняю..

Цитата:
RewriteRule !(^(_|index.php|admintools|robots.txt|services)) /index.php

не будет работать с
Цитата:
/css/defaut.css
/img/index.gif

так как будет перекидывать на index.php
если, конечно, папки img и css не являются алиасами.. (не помню, как тогда сработает htaccess в отношении их)
определись что и куда должно переправляться
Автор: aL_MIR
Дата сообщения: 21.04.2007 00:12
сейчас все пути к картинкам в сгенерированной странице выглядят так _http://site/img/h_1.jpg (фоновая картика шапки сайта) их соответсвенно там нет, надо чтоб при обращении скрипта он свои файлы искал уже по пути _http://site/services/img/h_1.jpg

если с текущим htaccess я наберу _http://site/services/img/h_1.jpg то картинка появится
Автор: ROMAHi4
Дата сообщения: 21.04.2007 20:36
Подскажите, пожалуйста, как организована структура в этом случае

написал вот так в .htaccess
RewriteEngine On
RewriteBase /
RewriteRule ^([A-Za-z]+)/([A-Za-z]+)$ index.php?act=$1&lang=$2

жду результата замены index.php?act=news&lang=ru на /news/ru
Возникает проблема - картинки и всё остальное грузятся как
http://myweb.ru/news/images/ru/button_proj.jpg
при вводе ссылки http://myweb.ru/news/ru,
а должен
http://myweb.ru/images/ru/button_proj.jpg
images/ папка, а /ru/ GET параметр
Помогает, только задача абсолюного пути к файлу....

Делал ещё так

RewriteCond %{REQUEST_URI} ^/([a-z]{1,10})/
RewriteRule ^([a-z]{1,10})/(.*) /$2?act=$1 [PT,QSA]

RewriteCond %{REQUEST_URI} ^/([a-z]{2})/
RewriteRule ^([a-z]{2})/(.*) /$2?lang=$1 [PT,QSA]

if (isset($_GET['lang']) && ($_GET['lang']!='') ) )
$lang = $_GET['lang'];
else $lang="ru";

<img border=0 src="images/<?=($lang!="" ? $lang : "ru")?>/button_news.jpg">
Автор: andead
Дата сообщения: 21.04.2007 21:02

Цитата:
Возникает проблема - картинки и всё остальное грузятся как
http://myweb.ru/news/images/ru/button_proj.jpg
при вводе ссылки http://myweb.ru/news/ru,
а должен
http://myweb.ru/images/ru/button_proj.jpg
images/ папка, а /ru/ GET параметр
Помогает, только задача абсолюного пути к файлу....

используй тег BASE в html документе

Цитата:
Тег BASE позволяет авторам явно указать базовый URL документа. Если BASE указан, он должен присутствовать в разделе HEAD документа HTML, до элементов, ссылающихся на внешние ресурсы. Информация о пути, указанная в элементе BASE, влияет только на URL в документе, в котором присутствует этот элемент. Начальный тег обязателен, конечный тег запрещен
Автор: ROMAHi4
Дата сообщения: 21.04.2007 21:47
Используя такую конструкцию,
RewriteRule ^([A-Za-z]+)/([A-Za-z]+)$ index.php?act=$1&lang=$2
не всегда работают ссылки,
например если поменять местами /news/ru/, страница 404
Автор: xqyxqy
Дата сообщения: 03.05.2007 22:40
Хелп нужен

вот ссылка

news.php?year=2007&month=05&day=02&ang_zagolovok=Sait_otkrit


вот в .htaccess

пишу

php_value error_reporting 7
RewriteEngine on
RewriteBase /
RewriteRule ^news/([0-9]+)/([0-9]+)/([0-9]+)/([a-z]+).html /news.php?year=$1&month=$2&day=$3&ang_zagolovok=$4

нифига не получается.. в чем касяк?
Автор: Cheery
Дата сообщения: 03.05.2007 22:54
xqyxqy

Цитата:
вот ссылка

news.php?year=2007&month=05&day=02&ang_zagolovok=Sait_otkrit

этого мало.. из чего и во что хочется преобразовать?
Автор: xqyxqy
Дата сообщения: 04.05.2007 08:17
news.php?year=2007&month=05&day=02&ang_zagolovok=Sait_otkrit

вот эту строку хочу преобразовать в

news/2007/05/02/Sait_otkrit.html
Автор: Mira
Дата сообщения: 04.05.2007 10:33
столкнулся с такой пролемой при переезде хостера в новый датацентр

вот есть правилa, они работают

Код:
RewriteRule ^filename/?$ /filename3.php?c=2 [L,QSA]
RewriteRule ^filename/a([0-9]{5})\.html$ /filename3.php?c=2&aid=$1 [L,QSA]
RewriteRule ^filename/a([0-9]{5})-([0-9]*)\.html$ /filename3.php?c=2&aid=$1&page=$2 [L,QSA]
Автор: Cheery
Дата сообщения: 04.05.2007 17:05
xqyxqy

Цитата:
вот эту строку хочу преобразовать в

news/2007/05/02/Sait_otkrit.html

ну так догадайся

Цитата:
([a-z]+)

ни S ни _ в набор символов выше не входят
Автор: Mira
Дата сообщения: 04.05.2007 18:04

Цитата:
news.php?year=2007&month=05&day=02&ang_zagolovok=Sait_otkrit

^news/([0-9]{4})/([0-9]{2})/([0-9]{2})/([_a-zA-Z0-9]+)\.html$ /news.php?year=$1& ...$2... $3... $4
Автор: Mira
Дата сообщения: 05.05.2007 07:35

Цитата:
столкнулся с такой пролемой при переезде хостера в новый датацентр

вот есть правилa, они работают

Код:
RewriteRule ^filename/?$ /filename3.php?c=2 [L,QSA]
RewriteRule ^filename/a([0-9]{5})\.html$ /filename3.php?c=2&aid=$1 [L,QSA]
RewriteRule ^filename/a([0-9]{5})-([0-9]*)\.html$ /filename3.php?c=2&aid=$1&page=$2 [L,QSA]




а вот эти же правила, в том же .htaccess не работают.

Код:
RewriteRule ^filename2/w([0-9a-z-]{1,2})-([0-9]+)\.html$ /filename2.php?w=$1&page=$2 [L]
RewriteRule ^filename2/w([0-9a-z-]{1,2})\.html$ /filename2.php?w=$1 [L]
RewriteRule ^filename2/?$ /filename2.php [L]



те в первом случае я получаю данные в переменную _GET
во втором она пуста.

как это понимать?!

спасибо



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

Так вот можно ли как то отключить этот модуть.
Спасибо.
Автор: driverok
Дата сообщения: 05.05.2007 15:03
Есть файл hттp://domen/index.php
в нем есть ссылка на другой файл hттp://domen/index_temp.php?var=qwe

Вопрос - если я переделаю в файле index.php ссылку на файл index_temp.php в следующую -

hттp://domen/pars/qwe

что нужно прописать в .htaccess чтобы во второй файл пришла нужная переменная?

т.е я, нажимая на ссылку hттp://domen/pars/qwe должен пойти на hттp://domen/index_temp.php?var=qwe
Автор: driverok
Дата сообщения: 06.05.2007 09:26
сам разобрался
вот содержимое .htaccess

Код:
RewriteEngine on
RewriteRule ^(.*)pars/(.*)$ $1index_temp.php?var$2
Автор: StasM
Дата сообщения: 17.05.2007 17:21
Господа, помогите пожалуйста настроить .htaccess
Отдал сайт на раскрутку. Раскрутчики рекомендуют создать файл .htaccess в корне сайта и вставить код:
Код: RewriteEngine on
RewriteCond %{QUERY_STRING} ^.+$
RewriteRule ^[^/.]*$ мой_домен/? [R=301,L]

RewriteCond %{THE_REQUEST} /[?./]
RewriteRule .* мой_домен/? [R=301,L]
Автор: Brodyaga
Дата сообщения: 17.05.2007 19:36
Лень проверять правила, но попробуй написать в .htaccess беспорядочный набор символов(советую вот этот:
Цитата:
ASDADQ#$!QWFCN BH
)##
)
И проверить, обрабатывается ли .htaccess вообще.
Если да, то получишь Internal Server Error. Если нет-тогда все останется как прежде и придется лезть в конфиги сервера.
Автор: StasM
Дата сообщения: 17.05.2007 19:52
Brodyaga
Проверил. Выдает Internal Server Error. Значит .htaccess обрабатывается?
Автор: Brodyaga
Дата сообщения: 17.05.2007 20:14
Да, обрабатывается.
Какая версия Apache?
Запиши в .htaccess после RewriteEngine On

Код:
RewriteLogLevel 9
Автор: StasM
Дата сообщения: 17.05.2007 21:08
Действительно, создал страницу error-301.html и указал путь

Код: RewriteEngine on
RewriteCond %{QUERY_STRING} ^.+$
RewriteRule ^[^/]*$ мой_домен/error-301.html/ [R=301,L]

RewriteCond %{THE_REQUEST} /[?./]
RewriteRule .* мой_домен/error-301.html/? [R=301,L]
Автор: Brodyaga
Дата сообщения: 17.05.2007 21:17
StasM
Абсолютно не понимаю смысла данного действия, некорректно поставлена задача этой "крутильной" конторой.
Если сайт на HTML и Index у него index.html, зачем пользователя перенаправлять куда-то ещё?
Автор: StasM
Дата сообщения: 17.05.2007 21:33
Brodyaga
А я и подавно не понимаю о чем речь. Мне бы главное сделать так, как они говорят
Проверь пожалуйста ПМ
Автор: StasM
Дата сообщения: 23.05.2007 12:35
После недолгих мучений все настроил за исключением одного.
Нужно чтобы при заходе на http://my_domen.ru происходило перенаправление на http://www.my_domen.ru

Прописывал такой код в .htaccess:

Код: RewriteEngine On
RewriteCond %{HTTP_HOST} ^my_domen\.ru$ [NC]
RewriteCond %{REQUEST_URI} !^/robots\.txt$
RewriteRule ^(.*)$ http://www.my_domen.ru/$1 [R=301,L]
Автор: Urth
Дата сообщения: 26.05.2007 10:46
Apache RewriteRule & %2F
Кто-то решал данную проблему?

Если в URL есть %2F ("/") (к примеру /test%2Ftest/), правило:
RewriteRule (.*) /rule.php?url=$1 [QSA,L]
- не работает, сервер выдает:
Not Found
The requested URL /test/test/ was not found on this server.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445

Предыдущая тема: PHP: Регулярные выражения (RegExp, Regular, eregi, preg)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.