Назад | Перейти на главную страницу

Конфигурация Apache для тихой перезаписи строк запроса, таких как codeigniter

Codeigniter перезаписывает строки запроса следующим образом:

http://somedomain.com/index.php?q=something

стать:

http://somedomain.com/index.php/q/something

Я хотел бы имитировать это поведение на (очень) легком веб-сайте, который я разрабатываю для системы RSVP на свадьбу. Я не хочу раздувания codeigniter, и мне не нужно ничего, что он предоставляет. Единственное, что мне нужно, это вот это.

К сожалению, я не знаю, как настроить правило перезаписи мода, которое позволяет это сделать. Я могу установить правило, которое переводит /q/something в ?q=something, но я не могу найти такой, который бы делал это без изменения URL-адреса, просматриваемого пользователем.

Я в основном ищу что-то, что по сути является "тихой" версией перезаписи. То есть я хочу что-то, что переписывает q/something к ?q=something, но оставляет URL-адрес пользователя в адресной строке как q/something.

Заранее спасибо!

РЕДАКТИРОВАТЬ

В файле .htaccess для сайта у меня есть следующее:

RewriteEngine on
RewriteRule ^/index.php/q/(.*) /index.php?q=$1

В базовой конфигурации для сайта (/etc/apache2/sites-available/mysite.conf) у меня есть:

<VirtualHost *>
        ServerAdmin me@email.com
        ServerName www.mysite.com
        DocumentRoot /var/www/www.mysite.com
        Options -Indexes +FollowSymLinks
</VirtualHost>

Файл index.php в настоящее время просто распечатывает значение $_GET['q']. Теперь, когда я захожу на сайт http://www.mysite.com/index.php?q=12345, как и ожидалось, отображается «12345». Но когда я перехожу к http://www.mysite.com/index.php/q/12345, он ничего не отображает. Или, скорее, кажется, что значение строки запроса пусто. Я не совсем уверен, что делаю неправильно.