We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 7486
    • 19 Posts
    Friendly URLs работают, все хорошо.
    Сначала у всех страниц сайта не было псевдонимов - все ссылки выглядели как site_name/id.html
    Теперь у большинства из них прописаны псевдонимы - соответственно modx по старому адресу выдает HTTP 404, а страница доступна по site_name/alias.html

    Вопрос: как для адреса site_name/id.html заменить HTTP 404 на HTTP 503 (Moved permanently) со ссылкой на site_name/alias.html (если таковой у страницы имеется)?
      • 7486
      • 19 Posts
      Может я не втом разделе вопрос задал?
        • 897
        • 1,620 Posts
        ну во-первых не 503, а 301 документация вам в помощь

        во-вторых
        - если страниц не много делайте через mod_rewrite
        ...
        RewriteRule ^id1.html$ /alias1.html [R=301,L]
        RewriteRule ^id2.html$ /alias2.html [R=301,L]
        ...
        


        - если страниц много и/или хочется автоматизировать, то пишете плагин, который будет проверять входящий запрос на шаблон [0-9].html, пробовать найти для полученого id соответствующий документ, если такой документ существует, то

        ...
        $new_page_url = $modx->makeUrl($id_from_query);
        $modx->sendRedirect($new_page_url, 0, 'REDIRECT_HEADER', 'HTTP/1.1 301 Moved Permanently');
        ...
        


        замечание: проверять существование документа надо самому ОБЯЗАТЕЛЬНО, так как $modx->makeUrl() "Function doesn’t check for existence and publication of the document.". А вот опубликован документ или нет не надо, модх сделает все за вас после редиректа (для системы это будет штатные запрос)

        удачи!
          "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

          Не используйте Revo для "просто сайтов". Используйте Evo

          Who can defeat the Russian bear?