【问题标题】:remove index.php file from url using codeigniter使用 codeigniter 从 url 中删除 index.php 文件
【发布时间】:2013-10-04 16:06:12
【问题描述】:

我无法从 codeigniter 中的 url 中删除 index.php 我已经尝试过这个 .htaccess 文件代码。

RewriteEngine on
RewriteCond $1 !^(index\.php|public|\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1

我删除了配置文件中的 index.php

如何解决这个问题?

【问题讨论】:

  • 如果您在本地主机上并且没有使用虚拟主机,则必须在您的htaccess 上添加RewriteBase 以将其重定向到文件夹。
  • 看看这篇文章。希望有效 - stackoverflow.com/questions/17852585/…

标签: php .htaccess codeigniter url


【解决方案1】:

首先你必须在 Apache 服务器中启用 rewrite_module
那么你的 .htaccess 文件应该是这样的 -->

> <IfModule mod_rewrite.c>
>     RewriteEngine On
>     RewriteBase /rttt/
> 
>     #Removes access to the system folder by users.
>     #Additionally this will allow you to create a System.php controller,
>     #previously this would not have been possible.
>     #'system' can be replaced if you have renamed your system folder.
>     RewriteCond %{REQUEST_URI} ^system.*
>     RewriteRule ^(.*)$ /index.php?/$1 [L]
>     
>     #When your application folder isn't in the system folder
>     #This snippet prevents user access to the application folder
>     #Submitted by: Fabdrol
>     #Rename 'application' to your applications folder name.
>     RewriteCond %{REQUEST_URI} ^application.*
>     RewriteRule ^(.*)$ /index.php?/$1 [L]
> 
>     #Checks to see if the user is attempting to access a valid file,
>     #such as an image or css document, if this isn't true it sends the
>     #request to index.php
>     RewriteCond %{REQUEST_FILENAME} !-f
>     RewriteCond %{REQUEST_FILENAME} !-d
>     RewriteRule ^(.*)$ index.php?/$1 [L] </IfModule>
> 
> <IfModule !mod_rewrite.c>
>     # If we don't have mod_rewrite installed, all 404's
>     # can be sent to index.php, and everything works as normal.
>     # Submitted by: ElliotHaughin
> 
>     ErrorDocument 404 /index.php </IfModule>

【讨论】:

  • 在哪里可以找到 RewriteBase /trrr/ #这是文件夹名称 localhost/trrr
  • 它是你的基础前:localhost/yourfoldername
【解决方案2】:

请使用此代码

RewriteEngine on
RewriteBase / -- Your folder containing htaccess file-- / 
# Hide the application and system directories by redirecting the request to index.php

RewriteRule ^(application|system|\.svn) index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]

【讨论】:

  • 它怎么不工作?要么它仍然在链接中显示 index.ph 或什么
  • 我使用上面的代码并在配置文件中删除了 index.php,url 没有 index.php 但我的网页显示页面不可用
  • 你在那个页面的 url 中使用了 index.php 吗?
  • 我仍然面临同样的问题。我必须做任何 apache 配置吗
  • 我删除了配置文件中的 index.php "$config['index_page'] = '';"
【解决方案3】:

请尝试下面的代码。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

将代码放在根文件夹的 htaccess 文件中。它对我有用。请让我知道它是否对你有用。

【讨论】:

    猜你喜欢
    • 2016-05-14
    • 2014-10-28
    • 2012-06-15
    • 2012-09-21
    • 2011-10-12
    • 2017-07-16
    • 2014-02-28
    相关资源
    最近更新 更多