Ty *_*ley 38 php .htaccess codeigniter
我之前从未使用过CodeIgniter,更不用说任何php框架了,我想我会尝试一下.一切都很顺利,除了我似乎无法从URL中删除index.php并仍然访问我的页面.
我从来没有使用过MVC结构,因此我正在学习,所以请原谅我,如果我做错了.
我试图通过输入localhost/ci/about来访问我创建的名为'about_page.php'的视图,但目前我只能使用localhost/ci/index.php/about来访问它.
页面的控制器:/application/controllers/about.php
页面的型号是:/application/models/about_model.php
和视图的页面是:/application/views/about_page.php
我已经搜索了这个问题的解决方案,但一直找不到.这是我已经搜索过的地方:
CodeIgniter - 删除index.php
Codeigniter - 如何从url中删除index.php?
http://www.farinspace.com/codeigniter-htaccess-file/
CodeIgniter在'application'文件夹中附带一个.htaccess文件,该文件只包含Allow Deny From All.所以我在根目录中创建了一个新的.htaccess文件,http://localhost/ci/.htaccess并将此代码添加到它:
RewriteEngine On
RewriteBase /ci
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)
当.htaccess文件位于根目录中时,我收到500内部服务器错误.当我将完全相同的文件复制到应用程序文件夹时,500错误消失,但我仍然无法使用localhost/ci/about访问about页面
我已经更改$config['index_page'] = 'index.php';为$config['index_page'] = '';AND我尝试更改$config['uri_protocol'] = 'AUTO';为$config['uri_protocol'] = 'REQUEST_URI';但我仍然收到内部服务器错误.
我进入了httpd.conf文件并取消注释了mod_rewrite.so模块,因此我知道mod_rewrite处于活动状态.
有没有人有任何想法为什么这不起作用或我怎么能得到这项工作?我知道StackOverflow上有很多关于这个主题的问题,但我找不到回答我问题的问题.
我这样做了吗?我是否应该通过访问localhost/ci/about来访问about页面,或者我是否必须在'application'目录中创建一个'about'目录?
Rah*_*pad 75
有3个步骤要删除index.php.
在application/config.php文件中进行以下更改
$config['base_url'] = 'http://'.$_SERVER['SERVER_NAME'].'/Your Ci folder_name';
$config['index_page'] = '';
$config['uri_protocol'] = 'AUTO';
Run Code Online (Sandbox Code Playgroud)请.htaccess使用下面的代码文件的根目录
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Run Code Online (Sandbox Code Playgroud)启用重写引擎(如果尚未启用)
一世.首先,使用以下命令启动它:
a2enmod rewrite
Run Code Online (Sandbox Code Playgroud)
II.编辑文件/etc/apache2/sites-enabled/000-default
全部更改AllowOverride None为AllowOverride All.
注意:在最新版本中,您需要更改/etc/apache2/apache2.conf文件
III.使用以下命令重新启动服务器:
sudo /etc/init.d/apache2 restart
Run Code Online (Sandbox Code Playgroud)你.htaccess有点偏.看看我的:
RewriteEngine On
RewriteBase /codeigniter
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|images|robots\.txt|css|docs|js|system)
RewriteRule ^(.*)$ /codeigniter/index.php?/$1 [L]
Run Code Online (Sandbox Code Playgroud)
请注意两个地方的"codeigniter".
在那之后,在你的配置中:
base_url = "http://localhost/codeigniter"
index = ""
Run Code Online (Sandbox Code Playgroud)
在适当的时候将codeigniter更改为"ci"
| 归档时间: |
|
| 查看次数: |
165388 次 |
| 最近记录: |