0

我想/public/index.php从我的 Codeigniter 和 Bonfire 项目 URL 中删除..

我当前的网址:http://localhost/public/index.php/page 所需的网址:http://localhost/page

但我希望链接、图像和机器人的路径完好无损!如何做到这一点?使用 .htaccess 有什么好的资源吗?

4

4 回答 4

1

尝试阅读CodeIgniter URLs的“删除 index.php 文件”小节:

在.htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

在 config.php 中:

$config['index_page'] = '';
于 2014-08-14T09:58:32.200 回答
1

你能试试这个吗?

RewriteEngine On

RewriteBase /



#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]



#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]

这对我来说很好

于 2014-08-14T10:08:29.420 回答
1

我认为您必须采取以下步骤:

  1. 将您的 .htaccess 文件从应用程序转移到根目录

  2. 删除/注释旧文件中的旧代码(使用#)并粘贴到下面的代码

RewriteEngine on #RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php?/$0 [PT,L] RewriteRule ^/?ajax/(.*)$ ajax.php? $1 [NC,QSA,L]

  1. 针对 $config['index_page'] 从配置文件中删除 index.php,如下所示 $config['index_page'] = '';

  2. 然后从Apache激活重写模块

它应该适合你。

于 2014-08-14T10:15:34.580 回答
0

您将 .htaccess 文件从我认为的应用程序复制到您的 basedir 中。

或者将新的 .htaccess 添加到您的 basedir。

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
于 2014-08-14T10:00:08.427 回答