从 url 代码中删除 index.php 在 Godaddy Plesk 托管的 codeigniter 中不起作用?

Posted

技术标签:

【中文标题】从 url 代码中删除 index.php 在 Godaddy Plesk 托管的 codeigniter 中不起作用?【英文标题】:Remove index.php from url code is not working in codeigniter in Godaddy Plesk hosting? 【发布时间】:2015-09-16 21:54:03 【问题描述】:

我已尝试使用以下代码。

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

我已将配置文件 index_page 中的空白替换为空白,但仍然无法正常工作并出现此错误。

404 - File or directory not found.
The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.

请帮我解决这个问题。

【问题讨论】:

你使用什么版本的codeigniter以及什么操作系统? 我使用的是 2.2 和 windows 7。在以前的服务器上一切正常,但是当我搬到新服务器上时,这个问题就来了。 这可能会有所帮助 github.com/riwakawebsitedesigns/htaccess_for_codeigniter 此外,在某些情况下,您可能需要将控制器和模型的文件名的第一个字母以及类名作为 codeigniter 3 中的大写我不确定代码点火器 3 How to remove index.php in Wamp?的可能重复 如何检查 rewrite_module 是否启用? 【参考方案1】:

我已经解决了这个问题。我在codeigniter的根目录中制作了web.config。我的代码如下。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Imported Rule 1" stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="false" />
                        <conditions logicalGrouping="MatchAll">
                            <add input="REQUEST_FILENAME" matchType="IsDirectory" negate="true" />
                            <add input="REQUEST_FILENAME" matchType="IsFile" negate="true" />
                        </conditions>
                        <action type="Rewrite" url="index.php?url=R:1" appendQueryString="true" />
                </rule>
            </rules>
        </rewrite> 
    </system.webServer>
</configuration>

它对我有用。我希望这对其他人也有帮助。

【讨论】:

非常感谢,按预期工作:)【参考方案2】:

将您的.htaccess 文件放在您的codeiginter 项目目录中,然后将此代码写入.htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|[javascript / CSS / Image root Folder name(s)]|robots\.txt)
RewriteRule ^(.*)$ project_dir_name/index.php/$1 [L]

将“project_dir_name”替换为第 3 行中的实际目录名称。

如果您仍然有问题,请检查您的控制器、方法名称以及文件夹和文件的权限。

【讨论】:

它在 go-daddy 的 plesk 服务器上。我已经尝试了所有代码和更改,但没有任何效果。 你在 config/config.php 文件中更改了 'base_ur' 吗? 是的,我已经把base_url改成带域名了

以上是关于从 url 代码中删除 index.php 在 Godaddy Plesk 托管的 codeigniter 中不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

从 URL 中删除 index.php - Codeigniter 2

从 URL 中删除 index.php (CodeIgniter)

无法从 codeigniter 中的 URL 中删除“Index.php”

从 codeigniter URL 中删除 index.php

无法从 CodeIgniter URL 中删除 index.php

如何从 URL 中删除 index.php?