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



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Редирект в ModX через .htaccess коряво работает
kstnews
kstnews
Topic Starter сообщение 15.10.2017, 12:12; Ответить: kstnews
Сообщение #1


По поводу закрытой темы: http://www.maultalk.com/topic208142.html?hl=modx#

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

Аналогичная ситуация, в Joomla все спокойно решалось через редирект в самом конце:
Код
Redirect 301 /oldurl http://newurl


В Modx сие не работало, после поисков в инете и собственных проб и ошибок выяснил, что, по крайней мере у меня работает код:
Код
RewriteRule ^page1.html$ /page2.html [R=301,L]


Причем принципиально, "page1.html" без слэша впереди, а "/page2.html", соответственно, со слэшем.

Причем, сия конфигурация заработала у меня только после размещения после:
Код
RewriteEngine On
RewriteBase /


Знатоков и специалистов в языке .htaccess просьба написать, в чем я неправ.

PS Заранее спасибо.


--------------------
Пессимист, это вооружённый знаниями оптимист.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 15.10.2017, 12:20; Ответить: x64
Сообщение #2


Цитата(kstnews @ 15.10.2017, 11:12) *
В Modx сие не работало

Сие не зависит от движка. Это директива веб-сервера, который и передаёт ЯПу управление. Значит, не в том месте разместили.

Цитата(kstnews @ 15.10.2017, 11:12) *
принципиально, "page1.html" без слэша впереди

Именно. Особенности Апача, ведущий слэш не участвует.

Цитата(kstnews @ 15.10.2017, 11:12) *
RewriteEngine On

Без этого МодРеврайт не работает. После его включения можно RewriteRule/RewriteCond юзать.


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


x64, thanks - понял, что "шел в нужном направлении".

Просто вчера боролся с css (который вчера, как выяснилось, "не знал, да еще и забыл", хотя казалось...) И когда чего-то не понимаешь, "ищешь врагов" - в смысле, Modx. Оказалось, просто css.

А с редиректом в Modx все немножко по-другому. Не так, как привык. (или я чего-то не понимаю, что вполне может быть).

Вопрос.

Была Joomla. Спринхост. Первые редиректы, помнится, сначала делал через админпанель на хостинге, и заметил, что там просто в конце (sorry за колхозную терминологию) .htaccess прописывается Redirect 301 old new, и все работало. Потом "завел себе" modx (хостинг другой) - и выяснилось, что не работает (и, насколько я понял, хостинг не причем).

Сообщение отредактировал kstnews - 15.10.2017, 13:03


--------------------
Пессимист, это вооружённый знаниями оптимист.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mmkulikov
mmkulikov
сообщение 15.10.2017, 14:36; Ответить: mmkulikov
Сообщение #4


Цитата(kstnews @ 15.10.2017, 10:12) *
в Joomla все спокойно решалось через редирект в самом конце:

Как писали выше, цмс к апачу не относится.
А главная ошибка - это располагать свои редиректы в конце
Свои должны быть сразу за RewriteEngine On


--------------------
Сдается, обращаться скайп avdesk-it-kmm
VPS от 5€


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 15.10.2017, 15:29; Ответить: x64
Сообщение #5


Цитата(kstnews @ 15.10.2017, 11:58) *
Первые редиректы, помнится, сначала делал через админпанель на хостинге

Тут в деталях могу ошибаться, ибо долгое время на своём сервере сидел. Думаю, что установки через панель обрабатывают раньше пользовательских. Последовательность видится такой:
1. Глобальные конфиги веб-сервера.
2. Дополнительные конфиги (видимо, именно они и устанавливаются через панель).
3. .htaccess

Цитата(kstnews @ 15.10.2017, 11:58) *
там просто в конце (sorry за колхозную терминологию) .htaccess прописывается Redirect 301 old new

Зависит от хостинга. Настройка веб-сервера может быть довольно гибкой, посему, зависит от действий администраторов. Если они настроили, что из панели (которые, к слову, тоже различаются) изменения идут в .htaccess, то Вы можете с равным успехом сразу терзать этот файл. Но если изменения заносятся в конфиг веб-сервера, который обычно юзеру недоступен (если не свой сервер или vps/vds), то действовать надо через панель.

Цитата(mmkulikov @ 15.10.2017, 13:36) *
это располагать свои редиректы в конце

Солидарен.
Очень часто юзеры пхают редиректы в конец .htaccess, после чего жалуются, что не работает. На самом деле, располагать внешние редиректы (которые отдаются браузеру) нужно как можно ближе к
Код
RewriteEngine On

Если есть внутренний редирект (на уровне веб-сервера) с флагом L, то дальше конфиг не обрабатывается. Для примера:
Код
RewriteEngine On
RewriteRule (.*) index.php?request=$1 [L,QSA]
RewriteRule ^page1.html$ /page2.html [R=301,L]

До строки №3 дело не доходит. В строке №2 внутренний редирект безусловно перебрасывает запрос на /index.php?request={путь-запроса}, после чего управление передаётся пыху. Но всё изменится, если поменять 2 и 3 местами.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mmkulikov
mmkulikov
сообщение 15.10.2017, 16:45; Ответить: mmkulikov
Сообщение #6


Цитата(x64 @ 15.10.2017, 13:29) *
Если есть внутренний редирект (на уровне веб-сервера) с флагом L, то дальше конфиг не обрабатывается.

Не совсем так. Флаг L только перезапускает обработку в этом месте(где сработало условие) с самого начала, но выполнив соответствующую
подстановку. Из-за этого могут быть бесконечные циклы. Так что осторожней с условиями :)


--------------------
Сдается, обращаться скайп avdesk-it-kmm
VPS от 5€
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 15.10.2017, 18:54; Ответить: x64
Сообщение #7


Цитата(mmkulikov @ 15.10.2017, 15:45) *
Флаг L только перезапускает обработку

Встречный вопрос: как он её перезапускает? :D
Если следует постоянный перезапуск, смысл в правилах? Постоянно же будут перезапуски.
Правила сначала действуют для запрашиваемого подкаталога, потом уровнем выше и т. д. В подавляющем большинстве случаев L означает именно окончание разбора.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
mmkulikov
mmkulikov
сообщение 15.10.2017, 20:34; Ответить: mmkulikov
Сообщение #8


Цитата(x64 @ 15.10.2017, 16:54) *
Встречный вопрос: как он её перезапускает?

Так работает апач :D
Вот детально разжёвано об этом https://habrahabr.ru/company/sprinthost/blog/129560/


--------------------
Сдается, обращаться скайп avdesk-it-kmm
VPS от 5€


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kstnews
kstnews
Topic Starter сообщение 15.10.2017, 21:06; Ответить: kstnews
Сообщение #9


Цитата(x64 @ 15.10.2017, 14:29) *
Думаю, что установки через панель обрабатывают раньше пользовательских.

Тут трудно мне что-то сказать.
Цитата(x64 @ 15.10.2017, 14:29) *
Если они настроили, что из панели (которые, к слову, тоже различаются) изменения идут в .htaccess, то Вы можете с равным успехом сразу терзать этот файл.

Что я и начал когда-то делать, и на Joomla все это работало.
А потом появился Modx. Сегодня специально зашел в Спринтхост, нашел окно Прененаправление:
Развернуть/Свернуть

Сделал перенаправление - они опять, как и в былые времена прописали в конце .htaccess
Код
### begin Sprinthost-redirects 15.10.2017 19:15
Redirect 301 /***/ http://***/
### Sprinthost-redirects end

На выходе получил переход на http://***/?q=

Разместил Redirect 301 /***/ http://***/ сразу после
Код
RewriteEngine On
RewriteBase /

Аналогично.
А вот
Код
RewriteRule ^page1.html$ /page2.html [R=301,L]
в самом начале сработал сразу. Получается, это все-таки проблемы Modx.

PS IMHO и практика. А флаг L у меня вызывает воспоминания пионерского детства с портретом Владимира Ильича, что к программированию мало относится, поэтому в дискуссию вступать не могу. :)

PSS Sorry, что встреваю в дискуссию, но зашел на Хабрахабр и осенило, где ж он этот флаг стоит. Дело за малым - понять зачем он вообще нужен, но это уже не сегодня.

Сообщение отредактировал kstnews - 15.10.2017, 21:13


--------------------
Пессимист, это вооружённый знаниями оптимист.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 15.10.2017, 21:12; Ответить: x64
Сообщение #10


Цитата(mmkulikov @ 15.10.2017, 19:34) *
Вот детально разжёвано об этом

Чем указанное по ссылке противоречит моим словам?

Цитата(kstnews @ 15.10.2017, 20:06) *
Тут трудно мне что-то сказать

Сложно что-то возразить. Каждая панель может задействовать свой свод правил, инивервальное для всех высказать сложно.

Цитата(kstnews @ 15.10.2017, 20:06) *
зашел в Спринтхост

Это же хостер) У него своё видение настроек.

Цитата(kstnews @ 15.10.2017, 20:06) *
это все-таки проблемы Modx

Фифти-фифти. Да, движок может отдельные моменты обрабатывать несколько своеобразно. Но он физически не в состоянии вмешивать в работу веб-сервера до того, как получит управление.

Цитата(kstnews @ 15.10.2017, 20:06) *
А флаг L у меня вызывает воспоминания пионерского детства с портретом Владимира Ильича

L = Last. И даже в этом случае ранее подобного не было)

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


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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыBropush - Твой бро в монетизации через Push-уведомления
28 bropush 11187 Вчера, 12:52
автор: bropush
Открытая тема (нет новых ответов) Через какой браузер и как можно найти в кэшэ браузера видео
10 Room 1925 23.3.2024, 7:41
автор: Room
Открытая тема (нет новых ответов) Крауд-маркетинг который работает | Эффективные Ру-ссылки
1 Azyuka 956 13.2.2024, 19:36
автор: tascha56
Открытая тема (нет новых ответов) XMLSeo - поисковая выдача Яндекс, Wordstat, Google, Bing, DuckDuckGo через API
0 Malpertu36 1533 25.12.2023, 19:34
автор: Malpertu36
Открытая тема (нет новых ответов) Продвижение сайта через краудинг с поддержкой
Полный комплекс мер по продвижению сайта
0 alexey 987 22.8.2023, 16:33
автор: alexey


 



RSS Текстовая версия Сейчас: 28.3.2024, 12:59
Дизайн