Перепишите первый запрос - PullRequest
0 голосов
/ 19 марта 2012

Можно ли переписать URL-адрес и при этом использовать запрос?

Я имею в виду что-то вроде этого: http://domain.com/?page=Home&derp=true

и переписать его так: http://domain.com/home.htm?derp=true

Так что на самом деле просто перепишите первый запрос ...

Я пытался сделать это:

RewriteRule ^([a-z]+).htm$ index.php?page=$1

Но не смогпередать параметр с помощью D:

Ответы [ 2 ]

1 голос
/ 19 марта 2012

О, чувак, тебе лучше написать свой вопрос. Просто добавьте [QSA] Документы в конце, и оно должно работать:

RewriteRule ^([a-z]+).htm$ index.php?page=$1 [QSA]

Это совсем не проблема, это просто некоторые строковые операции в PHP, вам даже не нужно регулярное выражение для него:

function rewrite_url($url) {
    list($prefix, $query) = explode('?', $url, 2) + array('','');
    parse_str($query, $vars);
    if (isset($vars['page'])) {
        $prefix .= $vars['page'] . '.htm';
        unset($vars['page'];
    }
    return $prefix . '?' . http_ build_ query($vars);
}

Если вы хотите, вы можете сделать это и с помощью регулярных выражений:

$url = preg_replace('/^(.*)$/e', 'rewrite_url(\'$1\')', $url);
0 голосов
/ 19 марта 2012

Для перезаписи URL рекомендуется использовать mod_rewrite Apache

Если mod_rewrite не является ответом, рассмотрите объяснение логики вашего приложения, структуры, которую вы используете, и как минимум другие детали.

...