我正在设置一个php mvc框架,我想将域后的任何内容重定向到index.php / $ 1,但它不起作用。我启用了rewrite_module和AllowOverride All,还有其他我缺少的东西吗?
基本上我希望网址从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>
答案 0 :(得分:1)
我相信你需要/index.php上的前导斜杠,因为你的正则表达式匹配行首。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php/$1 [L]
答案 1 :(得分:0)
这是我的httpd.conf文件的问题。我在localhost上没有AllowOverride all。一旦我改变了一切都有效。