Красивые ссылки для параметров статических страниц

Есть у меня страничка, например, mypage. И обращения к ней через http://www.myblog.ru/mypage/ идут нормально. Есть ли возможность сделать так, чтобы адреса http://www.myblog.ru/mypage/myparam/ обрабатывались как http://www.myblog.ru/mypage?param=myparam?

средствами htaccess или wordpress

В плагине прописал таким образом:

unction cp_rewrite_rules ( $rules ) {
global $wp_rewrite;

$newrules['mypage/(.+?)/?$'] = 'index.php?pagename=mypagename&myparam=assa';

    $newrules = array_merge($newrules,$rules);
    return $newrules;

}

add_filter('rewrite_rules_array', 'cp_rewrite_rules');

и http://www.myblog.ru/mypage/ обрабатывается нормально (отображается как статическая страница с именем mypagename), а вот параметр assa через $_GET[‘myparam’] не вытаскивается. Как быть?

я считаю что в твое коде есть ошибка на тему реврайт двух параметров. Т.е. ты не дал правильно распределить реврайту два параметра.

[quote]$newrules[‘mypage/(.+?)/?$’] = ‘index.php?pagename=mypagename&myparam=assa’;[/quote]
он поймет лишь параметр mypagename а вот последующую нет. как я помню нужно воспользоваться цифрами 1 и 2. (прочти все о реврайте)

$newrules[‘mypage/(.+?)/?$’] = ‘index.php?pagename=mypagename&myparam=$1’;

только один параметр, двух нет.

$newrules['mypage/(.+?)/?$'] = 'index.php?pagename=mypagename&myparam=$1';

только один параметр, двух нет.

вот это уже означает два параметра (.+?)/?$

тогда один их ? убери. Напиши грамотно.

Переписал все следующим образом:

function shade33_rewrite($wp_rewrite) {
    $shade33_rules = array(
        'mypage(/.+)?/?' => 'index.php?pagename=mypage&qqq='. $wp_rewrite->preg_index(1)
    );

    $wp_rewrite->rules = $shade33_rules + $wp_rewrite->rules;
}

// Hook in.
add_filter('generate_rewrite_rules', 'shade33_rewrite');

правило отрабатывается, но вот параметр qqq не выцыпляется.

давай так сделаем…. забудь пока про вордпресс.

создай один файл пхп у себя в локале с необходимыми тебе параметрами для проверки. Потом создай файл .htaccess и вот туда впиши свои правила – реврайты. Если пхп файл удачно возмет все те параметры которые передадутся через ЧПУ (человеку понятный урл) то написанное правило в .htaccess работает правильно и ты можешь впихнуть реврайты в вордпресс или же в .htaccess вордпресса.

ок, вот .htaccess

RewriteEngine On
RewriteRule ^test/(.+)?/?$ index.php?test=test&param=$1

вот index.php

<?php
echo($_SERVER['REQUEST_URI'].'<br />');
echo($_GET['param'].'<br />');
echo($param.'<br />'); 
?>

вот можно проверить результат: http://www.teatr-live.ru/test/test/asssa

а вот реврайты, которые сейчас зарегистрированны в ворпрессе: http://www.teatr-live.ru/rewrites

ты знаешь я не могу понять что ты хочешь этим реврайтом сказать. Что то не сходиться. Напиши мне что ты именно хочешь от этого реврайта словами. Чтоб что он делал??

хочу, чтобы урл test/myparam отрабатывался как test?param=myparam

вот было время когда я реврайтом очень был заинтересован. И на этот счет у меня есть ссылка на тему реврайт прочти его

[url]http://www.softtime.ru/forum/read.php?id_forum=5&id_theme=29567&page=18[/url]

а теперь поставь в .htaccess вот это

RewriteEngine On
RewriteBase /
RewriteRule ([a-z]+)/ index.php?param=$1

а в индекс.пхп вот это

<?php
echo($_SERVER['REQUEST_URI'].'<br />');
echo($_GET['param'].'<br />');
echo($param.'<br />');
?>

у меня все заработало!!!!!!

По рерайту можно пробовать очень долго, но часто многое можно прояснить у хостера, так как из-за каких-либо настроек часто не срабатывает "азбучное" рерайт правило.

Anonymous
Отправить
Ответ на: