如何在URL中删除索引.php



我尝试删除Codeigniter中的索引页

我这样做的第一步 旧代码

$config['index_page'] = "index.php”

//新更新的代码(只需要删除索引.php (

$config['index_page'] = ""

然后对于第二步,我这样做 在 Codigniter 的根中创建文件 .htaccess,然后将此代码源放入

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

但这是同样的问题,我无法刷新网页

与索引页的URL工作:http://localhost:8089/codeigniter3/index.php/Hello/dispdata但是没有索引页就无法 http://localhost:8089/codeigniter3/Hello/dispdata

你好是控制器, 最后感谢帮助,:)

问题是,您将其安装在/codeigniter3/

这应该可以解决它:

// remove index.php
$config['index_page'] = ""
// Allow installation in a subfolder of your webroot
$config['uri_protocol'] = "REQUEST_URI"

并保留您的重写设置,它们没问题。

Codeigniter url 路由应该会来拯救你。参考: https://codeigniter.com/user_guide/general/routing.html

  1. 在主文件夹中创建一个名为 (.htaccess( 的新文件,并将此代码粘贴到 .htaccess 文件中。

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /Enter your folder name/
    
  2. 删除用户对系统文件夹的访问权限。 此外,这将允许您创建一个系统.php控制器, 以前这是不可能的。 如果您已重命名系统文件夹,则可以更换系统。

    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]
    

当应用程序文件夹不在系统文件夹中时 此代码段阻止用户访问应用程序文件夹

  1. "应用程序"重命名为应用程序文件夹名称。

    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]
    

检查到

Rewrite Cond %{ENV:REDIRECT_STATUS} ^$    
Rewrite Cond %{REQUEST_FILENAME} !-f    
Rewrite Cond %{REQUEST_FILENAME} !-d    
RewriteRule ^(.*)$ index.php?/$1 [L]    
</IfModule>

错误文档 404/索引.php

试试这个

RewriteRule ^(.*)$ index.php?/$1 [L,QSA] 

QSA意味着,如果有一个查询字符串与原始 URL 一起传递,它将被附加到重写中

然后这样做

//remove index.php
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';

请按照以程操作:

  1. 在项目根文件夹中创建.htaccess文件
  2. 检查服务器上是否启用了mod_rewrite?

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

这将解决您的问题。 如果您仍然遇到问题,请告诉我。

尝试此步骤:

  1. $config['index_page'] = "index.php"中删除索引.php
  2. 在项目根文件夹中创建.htaccess,如以下代码

    RewriteEngine on
    RewriteBase /codeigniter3/
    RewriteCond $1 !^(index.php|css|fonts|images|js)
    RewriteRule ^(.*)$ index.php?/$1 [L]
    

    然后尝试http://localhost:8089/codeigniter3/Hello/dispdata

我希望它能解决你的问题!

您可以在根文件夹的.htaccess文件中尝试以下代码吗

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

由于您在.htaccess指令中将正确的 URL 路径作为附加路径名信息(path_info( 传递,因此请尝试在配置中显式设置它:

$config['uri_protocol'] = 'path_info';

除非显式设置,否则它将尝试各种方法,这些方法可能会失败,因为您现在已经从 URL 中删除了index.php

相关内容

  • 没有找到相关文章

最新更新