Получение страницы WP через ModRewrite (.htaccess)

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем OnArs, 6 дек 2009.

Статус темы:
Закрыта.
  1. OnArs

    OnArs

    Регистр.:
    30 авг 2008
    Сообщения:
    259
    Симпатии:
    74
    Здравствуйте, ув. Нульдяне!


    • WP установлен в: /news/
    • Есть файл: page-1.html
    • Есть страница WP: /news/pages/page-1


    Задача при запросе страницы page-1.html получать страницу /news/pages/page-1 с использованием ModRewrite (.htaccess).

    В .htaccess файле пишу вот так:
    PHP:
    RewriteEngine On
    RewriteRule 
    ^page-1.html$ /news/pages/page-1
    В ответ при запросе страницы page-1.html получаю 404 страницу WP.

    В чём проблема? Что делаю не так? :bc:


    Заранее благодарен! :ay:
     
  2. t0wer

    t0wer BlackHerald

    Регистр.:
    24 июн 2008
    Сообщения:
    735
    Симпатии:
    423
    правильнее будет скорее так:
    PHP:
    RewriteEngine On
    RewriteRule 
    ^page-1.htmlnews/pages/page-[L]
     
    OnArs нравится это.
  3. OnArs

    OnArs

    Регистр.:
    30 авг 2008
    Сообщения:
    259
    Симпатии:
    74
    Не помогает, всё равно 404 :( Есть ещё варианты?
     
  4. t0wer

    t0wer BlackHerald

    Регистр.:
    24 июн 2008
    Сообщения:
    735
    Симпатии:
    423
    По ходу вещей ваша проблема становится яснее...
    Так как у вас вордпресс установлен в папку ./news/, то следовательно в этой папке есть свой .htaccess который формирует для себя правила. Отсюда мы в корне вордпресса формируем ссылку на страницу /news/pages/page-1.
    Как я понимаю, Вы выводите page-1.html из корня сайта при этом применяете правило .htaccess из корня. Получается что в корне мы ставим ссылку на страницу, которая не сформирована. Как вордпресс будет опозновать его эта ссылка или нет. Да никак, так как это правило просто его не касается. Отсюда и получается ошибка 404. А вот если вы вставите код:
    PHP:
    RewriteRule ^page-1.htmlnews/pages/page-[L]
    #или
    RewriteRule ^page-1.htmlpages/page-[L]
    #(надо посмотреть какое правило стоит у вордпресса по ЧПУ)
    в конце .htaccess папки /news/ вордпресса и ее введете в строке адреса, то увидите это преобразование. Учитывая все написанное, вам нужно переписать .htaccess для корня сайта.
    Учитывая, что на экстрасенса я не тяну, а код цепочек преобразования вы не выкладываете, то возможно что срабатывают другие правила. Вам просто нужно по логике вещей посмотреть что на что перенаправляет и сделать по своей логике вещей, ИМХО.
     
    OnArs нравится это.
  5. OnArs

    OnArs

    Регистр.:
    30 авг 2008
    Сообщения:
    259
    Симпатии:
    74
    t0wer, Спасибо за Вашу помощь и затраченное время!

    Шаблон ЧПУ в настройках WP: /%category%/%postname%-%post_id%.html

    Содержимое файла .htaccess в /news/:

    Содержимое файла .htaccess в / (корень:(
     
  6. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    125
    Еще полезно бывает смотреть RewriteLog. Если есть возможность, приведи пожалуйста здесь.
     
  7. t0wer

    t0wer BlackHerald

    Регистр.:
    24 июн 2008
    Сообщения:
    735
    Симпатии:
    423
    незачто!
    Ваш пример по ходу для вывода новостей, а желаете перенастроить вывод страниц. Нужно лезть в код ВП, а так гадать мало что даст.

    С корня выводить ЧПУ маловероятно получится, так как все ссылки вордпресса унитарные и тут (на мой взгляд) нужно (если все-таки есть необходимость) копать настройки ЧПУ WP и то только для папки /news/.
     
    OnArs нравится это.
Статус темы:
Закрыта.