当前位置: 首页 > 面试题库 >

CodeIgniter htaccess和URL重写问题

殳俊
2023-03-14
问题内容

我以前从未使用过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在“应用程序”文件夹中随附一个.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]

当.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”目录?


问题答案:

有3个步骤要删除index.php

  1. application/config.php文件中进行以下更改

    $config['base_url'] = 'http://'.$_SERVER['SERVER_NAME'].'/Your Ci folder_name';
    

    $config[‘index_page’] = ‘’;
    $config[‘uri_protocol’] = ‘AUTO’;

  2. .htaccess使用下面的代码文件的根目录

    RewriteEngine on
    

    RewriteCond $1 !^(index.php|resources|robots.txt)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L,QSA]

  3. 启用重写引擎(如果尚未启用)

一世。 首先,使用以下命令启动它:

    a2enmod rewrite

ii。 编辑档案/etc/apache2/sites-enabled/000-default

全部更改AllowOverride NoneAllowOverride All

注意:在最新版本中,您需要更改/etc/apache2/apache2.conf文件

iii。 使用以下命令重新启动服务器:

    sudo /etc/init.d/apache2 restart


 类似资料:
  • "The great thing about mod_rewrite is it gives you all the configurability and flexibility of Sendmail. The downside to mod_rewrite is that it gives you all the configurability and flexibility of Send

  • 请参考:http://www.kancloud.cn/manual/thinkphp/1866

  • Apache 提供了基于正则表达式规则动态修改传入的请求的 URL 的方法。这用于以自己喜欢的任意方法映射任意 URL 到你的内部 URL 结构。 它支持无限的规则,以及为每个规则附加条件,从而提供了一个真正灵活且强大的 URL 操作机制。URL 操作可以依赖于各种测试,例如服务器变量,环境变量,HTTP 头,时戳,甚至外部数据库查询等,以便完成 URL 单元匹配。 这个模块在服务器上下文 (),

  • 这些天我在学习codeigniter。几天前我做了一个自己使用的网站,今天我刚刚应用了分页,但似乎我的url重写有问题。

  • 问题内容: 我有一个网址,看起来像: 我将如何将该URL转换为: 我认为WordPress也是一样。 如何使用PHP创建友好的URL? 问题答案: 您基本上可以通过以下两种方式执行此操作: .htaccess路由与mod_rewrite 在您的根文件夹中添加一个名为的文件,并添加以下内容: 这将告诉Apache为该文件夹启用mod_rewrite,并且如果询问它与正则表达式匹配的URL,它将在 内

  • 问题内容: 我有一个AngularJS webapp和Jersey后端。我需要设置URL重写,因此除给定的例外之外的所有内容都将重写为Angular的index.html。 例如。: 我已经如下设置了Tomcat 8 URL重写阀: 在 conf / server.xml中 在 conf / Catalina / my.domain.com / rewrite.config中 Tomcat忽略了我