我刚刚安装了codeigniter,所以如果我输入:
http://mysuperwebpage.comyr.com/projects/thebookshelf/index.php/welcome
它会显示所有内容。
但我希望在网址中删除此index.php
,这样您就可以访问欢迎控制器而无需在index.php
之前键入/welcome
:
http://mysuperwebpage.comyr.com/projects/thebookshelf/welcome
所以我正在遵循我在堆栈上的相同问题中找到的所有必要步骤。我尝试了什么:
的config.php:
$config['base_url'] = 'http://mysuperwebpage.comyr.com/projects/thebookshelf/';
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
位于根文件夹中的 .htaccess
文件:http://mysuperwebpage.comyr.com/projects/thebookshelf/.htaccess
尝试#1 (不工作)
htaccess的:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
尝试#2 (不工作)
htaccess的:
RewriteEngine on
RewriteBase /
# Hide the application and system directories by redirecting the request to index.php
RewriteRule ^(application|system|\.svn) index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
尝试#3 (不工作)
htaccess的:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
我错过了什么或做错了什么?第一次使用.htaccess。
答案 0 :(得分:1)
根据CodeIgniter docs,这是一种方法:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
答案 1 :(得分:1)
好吧,我在主持人的常见问题解答中找到了这些信息: On this page
所以我必须做的就是在所有事情之前加上这些:
RewriteBase /projects/thebookshelf/
所以现在它看起来像这样:
RewriteBase /projects/thebookshelf/
Options +FollowSymLinks
Options -Indexes
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond ${REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
我希望这对使用虚拟用户主目录路径的用户有所帮助,就像我的情况一样。
答案 2 :(得分:1)
这对我有用
对于 .htaccess 文件(在根文件夹中找到它)
RewriteEngine on
RewriteBase /yourProjectName
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
<强>的config.php 强>
$config['base_url'] = "";
$config['index_page'] = "index.php";
$config['uri_protocol'] = "AUTO";
答案 3 :(得分:1)
确保.htaccess文件位于根文件夹下,而不是应用程序文件夹。
这是你可能不注意的事情。