Перепишите все, что будет после index.php/

Я настраиваю php mvc framework и хочу перенаправить что-нибудь после домена в index.php/$1, но это не работает. У меня включен rewrite_module и AllowOverride All, что-то еще мне не хватает?

В основном я хочу, чтобы URL-адрес уходил от этого http://www.example.com/foo/bar в http://www.example.com/index.php/foo/bar так что я могу получить его из $_SERVER['PATH_INFO']

Вот что у меня есть...

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [L]

HTTPD-vhosts.conf

NameVirtualHost *:80

<VirtualHost *:80>
  DocumentRoot c:/wamp/www
  ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "c:/websites/snugglemvc"
    ServerName www.snugglemvc.com
    <Directory "c:/websites/snugglemvc">
        Order Deny,Allow
        Allow from all
        AllowOverride all
    </Directory>
</VirtualHost>

2 ответа

Решение

Это была проблема с моим файлом httpd.conf. у меня не было AllowOverride все на локальном хосте. как только я изменил что все заработало.

Я полагаю, что вам нужен начальный слеш на /index.php, поскольку ваше регулярное выражение соответствует началу строки.

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php/$1 [L]
Другие вопросы по тегам