X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> вопрос по mod_rewrite
anchous
anchous
Topic Starter сообщение 14.5.2014, 15:20; Ответить: anchous
Сообщение #1


коллеги, кто тащит в mod_rewrite, прошу помощи, а то что то мозг в узел уже скрутился, никак не пойму как описать поштучный рерайт.

надо чтобы без масок и общих правил урл1 переписался как урл2

на хостинге есть доки формата:
mmz.engines.html-en_type=1.htm
mmz.engines.html-en_type=2.htm

мне надо чтобы бродилка их выводила в виде
mmz.engines.html?en_type=1
mmz.engines.html?en_type=2

но на мои шаманства вроде

RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]+\ ([^\s]+)
RewriteRule ^mmz.engines.html-en_type=1.htm /mmz.engines.html?en_type=1

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

The requested URL //mmz.engines.html&en_type=1 was not found on this server.

опять же если приплюсывывая домен, то урл в ошибке вида
/http://site/mmz.engines.html&en_type=1

вот не могу понять откель кулёр взялся этот первый слеш и как должно быть?

Сообщение отредактировал anchous - 14.5.2014, 15:22


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
WMGM
WMGM
сообщение 14.5.2014, 17:55; Ответить: WMGM
Сообщение #2


Код
RewriteEngine On
RewriteRule ^mmz.engines.html?en_type=([0-9]+)$ mmz.engines.html-en_type=$1.htm [L]


Как-то так ;)


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
anchous
anchous
Topic Starter сообщение 14.5.2014, 18:08; Ответить: anchous
Сообщение #3


Цитата(WMGM @ 14.5.2014, 17:55) *
Как-то так ;)

увы, но с тем же успехом
к тому же, как я понимаю, данное выражение перпишет все множество файлов, а мне нужно только несколько


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Pepper
Pepper
сообщение 14.5.2014, 18:24; Ответить: Pepper
Сообщение #4


Я не понимаю вашу логику, т.е. задачу.

mmz.engines.html-en_type=1.htm - это физический файл на сервере?

При вводе в адресной строке mmz.engines.html?en_type=1 должен выдаваться тот физический файл?

Если так, то у вас правила наоборот написаны.

Кстати, ? и . - это спец. символы.

Сообщение отредактировал Pepper - 14.5.2014, 18:25


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
anchous
anchous
Topic Starter сообщение 14.5.2014, 18:40; Ответить: anchous
Сообщение #5


mmz.engines.html-en_type=1.htm это физический файл которму при открытии надо переписать урл в mmz.engines.html?en_type=1
Цитата(Pepper @ 14.5.2014, 18:24) *
Если так, то у вас правила наоборот написаны.

к сожалению от перестановки слагаемых результат никак не меняется, ибо пробывал и так и так: в моем примере хотя бы идет попытка рерайта при обращении к mmz.engines.html-en_type=1.htm, если их поменять местами то вообще ничего не происходит: mmz.engines.html-en_type=1.htm открывается как есть, mmz.engines.html?en_type=1 дает 404 ошибку

Сообщение отредактировал anchous - 14.5.2014, 18:45


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Pepper
Pepper
сообщение 14.5.2014, 19:15; Ответить: Pepper
Сообщение #6


Эти правила для одного файла. Пробуйте.

Код
RewriteEngine On

RewriteRule mmz\.engines\.html-en_type=1\.htm mmz.engines.html?en_type=1  [R=301,L]

RewriteCond %{QUERY_STRING} ^en_type=1$
RewriteRule mmz\.engines\.html  mmz.engines.html-en_type=1.htm [L]


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
anchous
anchous
Topic Starter сообщение 10.7.2014, 23:09; Ответить: anchous
Сообщение #7


коллеги, есть лишних 200 рублей, надо составить выражение для mod_rewrite из любого удобного формата имени N.html в index.php?newsid=N
то есть
1.html -> index.php?newsid=1
2.html -> index.php?newsid=2
3.html -> index.php?newsid=3


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 11.7.2014, 8:58; Ответить: x64
Сообщение #8


Код
RewriteEngine on
RewriteRule ^(.+)\.html$ index.php?newsid=$1 [L,QSA]


если же нужны исключительно цифры, тогда так:

Код
RewriteEngine on
RewriteRule ^([0-9]+)\.html$ index.php?newsid=$1 [L,QSA]


ps: но это для внутреннего редиректа. для внешнего требуется добавить флаг R:
Код
RewriteEngine on
RewriteRule ^([0-9]+)\.html$ /index.php?newsid=$1 [L,QSA,R]

флаг QSA — по необходимости, если требуется передавать параметры запроса:
123.html?a=2 → index.php?newsid=123&a=2

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


Сообщение отредактировал x64 - 11.7.2014, 9:08


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Вопрос по Элементору
или какким плагином воспользоваться
0 MihalychAIP 181 8.1.2021, 20:35
автор: MihalychAIP
Открытая тема (нет новых ответов) Вопрос по серверу на VPS
nodejs/mongodb
6 Gera 2369 30.12.2020, 12:43
автор: lostprophet
Открытая тема (нет новых ответов) Вопрос по верстке, как сделать подстраивание по высоте?
background-image
0 KM_ 312 21.12.2020, 12:18
автор: KM_
Открытая тема (нет новых ответов) Вопрос - платное размещение баннеров на сайте
10 WGN 804 14.12.2020, 14:20
автор: Peterson
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыImageCMS Вопрос ответ.
7 olegubs 594 10.11.2020, 14:32
автор: Ostromir


 



RSS Текстовая версия Сейчас: 16.1.2021, 16:04
Дизайн