Перепишите все, что будет после 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]