【问题标题】:Codeigniter routing is not working with following procedureCodeigniter 路由不适用于以下过程
【发布时间】:2016-10-18 08:20:09
【问题描述】:

我想在代码点火器中进行路由,并且我也完成了以下步骤 但它不起作用。我也完成了所有必需的设置,但随后也 它不起作用。请让我知道我是否缺少任何东西。

第 1 步

在 .htaccess 文件中添加这个

<IfModule mod_rewrite.c>
  RewriteEngine On
  #RewriteBase /

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ index.php [QSA,L]
</IfModule>

第 2 步:

删除 codeigniter 配置中的 index.php

$config['index_page'] = '';

第 3 步

在 route.php 中添加这个

$route['Viewsignup'] = 'Login/index/Viewsignup';

我的网址是这样的: http://localhost/machinetest/index.php/Login/Viewsignup

我想要这个网址: http://localhost/machinetest/index.php/Viewsignup

请帮帮我, 提前致谢

【问题讨论】:

  • $route['Viewsignup'] = 'Login/index/Viewsignup'; 应该是$route['Viewsignup'] = 'Login/Viewsignup';

标签: php .htaccess codeigniter


【解决方案1】:

.htaccess 不应该在这里发布。试试这个

$route['Viewsignup'] = 'Login/Viewsignup';

当您的 URL 看起来像 http://localhost/machinetest/index.php/Viewsignup 时,这将带您进入 Login 控制器的 Viewsignup 方法

要从 URL 中删除 index.php,只需使用以下更新您的 .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

现在http://localhost/machinetest/Viewsignup URL 也可以使用了

【讨论】:

  • @varunjoshi 那么当你点击这个 URL 时你会看到什么? http://localhost/machinetest/Viewsignup
  • 是的,当我直接点击这个网址时,它工作正常。我发现我这样称呼这个控制器的问题 ">创建一个帐户。所以我也必须从这里删除 index.php/Login。删除后它的工作正常谢谢。
【解决方案2】:

在某些服务器上,Apache 被配置为忽略 .htaccess 文件中的部分或全部指令。这是出于安全原因。 AllowOverride 指令控制 .htaccess 文件中将允许哪些功能。例如 AllowOverride None 可以关闭文件夹及其子文件夹的 htaccess 文件。

检查您的 Apache 配置文件,其中 AllowOverride 指令应用于包含您的问题 htaccess 文件的目录。

如果您不确定要查看哪个配置文件,请从主 Apache 配置文件 httpd.conf 或 apache2.conf 开始。如果您的网站是在 httpd.conf 包含的文件中配置的(例如虚拟主机配置文件),您将需要查看该文件。请参阅 Location of httpd.conf on CentOS, Ubuntu, Mac and others 以找到您的 httpd.conf。

要启用使用 .htaccess 文件,请更改 AllowOverride None to AllowOverride All.

例如,对于 CentOS 5.3 服务器,我需要更改文件 /etc/httpd/conf.d/virtualhosts.conf 中的 AllowOverride 设置。

httpd.conf 之前:

Options FollowSymLinks
AllowOverride None

httpd.conf 之后:

Options FollowSymLinks
AllowOverride All

请注意,启用 htaccess 文件具有安全隐患,因为 htaccess 文件会覆盖您的 Apache 配置。例如,如果您的站点提供上传,黑客可能会将 .htaccess 文件上传到您的服务器并使用它来访问您的服务器。 AllowOverride 有一些选项可以限制将在 .htaccess 文件中使用的指令。见documentation for AllowOverride.

参考http://smartwebdeveloper.com/apache/htaccess-problems

【讨论】:

  • 嗨,我已经检查了我系统中的 httpd.conf 文件,该文件位于 /opt/lampp/etc/httpd.conf,但他们已经设置了 Allowoverride All 然后路由也不是工作。
猜你喜欢
  • 2016-03-28
  • 1970-01-01
  • 2013-03-11
  • 2018-03-16
  • 1970-01-01
  • 1970-01-01
  • 2015-06-27
  • 2018-04-22
  • 2018-12-31
相关资源
最近更新 更多