我正在使用PHP的CodeIgniter框架。它要求index.php
应该在我输入的任何网址。我如何防止这种情况?任何人都可以给我一个简单的.htaccess
文件,它会隐式映射到index.php
,所以用户不必每次输入它?如何将myapp/index.php/controller/view映射到myapp/controller/view?
感谢提前:)
我正在使用PHP的CodeIgniter框架。它要求index.php
应该在我输入的任何网址。我如何防止这种情况?任何人都可以给我一个简单的.htaccess
文件,它会隐式映射到index.php
,所以用户不必每次输入它?如何将myapp/index.php/controller/view映射到myapp/controller/view?
感谢提前:)
你需要阅读本 http://codeigniter.com/wiki/mod_rewrite/ 因为你还需要进行一个小的代码更改(步骤2)不包括在Svens答案。
您可以使用.htaccess文件(或更好的apache.conf)转发所有请求与mod_rewrite的到index.php:
Options +FollowSymLinks
IndexIgnore */*
<ifmodule mod_rewrite.c>
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
</ifmodule>
如果您的请求是http://www.example.com/controller/view ,而不是$ _SERVER ['REQUEST_URI']是/ controller/view。您可以使用正则表达式或简单地分割字符串来解释它:explode('/',$ _ SERVER ['REQUEST_URI']);
谢谢Wizzard,你能告诉我'$ 1'和'[L]'代表什么吗? 'RewriteRule ^(。*)$ /app/index.php/$1 [L]' – TCM 2010-07-17 02:52:24