За последние 24 часа нас посетили 19024 программиста и 1616 роботов. Сейчас ищут 683 программиста ...

mediawiki: проблема с вопросительным знаком в адресах статей

Тема в разделе "Регулярные выражения", создана пользователем bur, 5 сен 2010.

  1. bur

    bur Активный пользователь

    С нами с:
    5 сен 2010
    Сообщения:
    5
    Симпатии:
    0
    сабж.
    При попытке добавить статью вида _http://site.ru/Что?Где?Когда?
    Происходит урезание адреса до первого вопросительного знака. Т.е. приведенный выше пример превратиться в _http://site.ru/Что
    Можно ли решить проблему сделав RewriteRule [301] на адрес _http://site.ru/Что%3fГде%3fКогда%3f ? Если да, то как должно выглядеть правило?
    ИЧСХ, при отключении ЧПУ всё работает. Но ЧПУ нужно.
     
  2. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    чтото мне подсказывает что нельзя, так как "?" - эт спец.символ не только для регулярки, но и в строке запроса он означает последующий набор параметров.
    Вон как в википедии - у них просто "?" при добавлении преобразуется в %3f, а это уже допустимо.
     
  3. bur

    bur Активный пользователь

    С нами с:
    5 сен 2010
    Сообщения:
    5
    Симпатии:
    0
    Но обратите внимание, http://site.ru/index.php?title=Что?Где?Когда? - так работает.
    В том и состоит вопрос. Как сделать, чтобы при обращении к такому адресу шел редирект на адрес в котором знаки вопроса заменены на "%3f"
     
  4. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    можно посмотреть исходную строку запроса в глобальной переменной $_SERVER
     
  5. bur

    bur Активный пользователь

    С нами с:
    5 сен 2010
    Сообщения:
    5
    Симпатии:
    0
    Можно пример?
     
  6. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    PHP:
    1.  
    2. <?php
    3.   echo '<pre>';
    4.   print_r($_SERVER);
    5.   echo '</pre>';
    6. ?>
    7.  
     
  7. bur

    bur Активный пользователь

    С нами с:
    5 сен 2010
    Сообщения:
    5
    Симпатии:
    0
    а как этот скрипт безболезненно интегрировать в mediawiki?
     
  8. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    это скрипт для наглядного отображения содержимого глобального массива $_SERVER.
    у этого массива есть несколько ключей, содержащих нужную вам информацию в различном виде.
    а вот КАК это дело интегрировать - вопрос не в моей компетенции.
     
  9. bur

    bur Активный пользователь

    С нами с:
    5 сен 2010
    Сообщения:
    5
    Симпатии:
    0