Одна интересная особенность, которую надо учитывать.
Допустим вам надо сделать преобразование такого вида, чтобы при открытии страницы /news/445.php происходило преобразование в /news/detail.php?ID=445
Можно использовать такое правило
[CODE]
array(
"CONDITION" => "#^/news/([0-9]+)\\.php#",
"RULE" => "ID=$1",
"PATH" => "/news/detail.php",
)
[/CODE]
Оно даже будет работать, но ровно до тех пор пока в строке не появятся дополнительные параметры. Например пользователь перешел с внешнего ресурса и в URL была добавлена метка для Google Analitics, запрошенный URL получился примерно такой /news/445.php?utm_source=google. Вместо текста новости вы увидите сообщение "Элемент не найден", потому что в результате преобразования получился такой адрес /news/detail.php?ID=445?utm_source=google.
Ниже приведен код, решающий эту проблему:
[CODE]
array(
"CONDITION" => "#^/news/([0-9]+)\\.php(\\?(.*))?#",
"RULE" => "ID=$1&$3",
"PATH" => "/news/detail.php",
)
[/CODE]
Допустим вам надо сделать преобразование такого вида, чтобы при открытии страницы /news/445.php происходило преобразование в /news/detail.php?ID=445
Можно использовать такое правило
[CODE]
array(
"CONDITION" => "#^/news/([0-9]+)\\.php#",
"RULE" => "ID=$1",
"PATH" => "/news/detail.php",
)
[/CODE]
Оно даже будет работать, но ровно до тех пор пока в строке не появятся дополнительные параметры. Например пользователь перешел с внешнего ресурса и в URL была добавлена метка для Google Analitics, запрошенный URL получился примерно такой /news/445.php?utm_source=google. Вместо текста новости вы увидите сообщение "Элемент не найден", потому что в результате преобразования получился такой адрес /news/detail.php?ID=445?utm_source=google.
Ниже приведен код, решающий эту проблему:
[CODE]
array(
"CONDITION" => "#^/news/([0-9]+)\\.php(\\?(.*))?#",
"RULE" => "ID=$1&$3",
"PATH" => "/news/detail.php",
)
[/CODE]