从 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