-3

我是CodeIgniter的新手。我在 Windows 8 上有一个XAMPP服务器。一切都很好,但问题在于我的 URL,它看起来不友好。它看起来像localhost/ci/index.php/site/homeci我的 CodeIgniter 的根文件夹在哪里)。我想让 URL 更干净,比如 localhost/ci/home,我该怎么做?

我的 CodeIgniter 版本是 2.1.2。

我已经做了一些研究,但在大多数情况下,它说要更改.htaccessCodeIgniter 的文件。但是我的.htaccess文件中没有任何内容;它是空的,除了“拒绝所有人”这一行。

4

3 回答 3

1

你可以这样做,在config/config.php

$config['base_url'] = 'http://'.$_SERVER['HTTP_HOST']; //you can also leave blank this CI tend to find this by himself
$config['index_page'] = '';

并尝试以下.htaccess. 我在很多网站上都使用它,它让我满意。

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

如果它还不起作用,请使用 aphpinfo();并检查 mod_rewrite 是否为enabled. 如果未启用,您可以按照 Stack Overflow 问题How do you enable mod_rewrite?中的说明进行操作。启用它。

如果它还没有工作并且 mod_rewrite 还enabled没有,你可以尝试将它们切换到config/config.php

$config['uri_protocol'] = 'AUTO'; //If not working, try one of these:
     'PATH_INFO'        Uses the PATH_INFO
    | 'QUERY_STRING'    Uses the QUERY_STRING
    | 'REQUEST_URI'     Uses the REQUEST_URI
    | 'ORIG_PATH_INFO'  Uses the ORIG_PATH_INFO
于 2013-01-04T21:30:28.897 回答
0

您需要将“全部拒绝”替换为:

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

http://ellislab.com/codeigniter/user-guide/general/urls.html

于 2013-01-04T21:29:55.127 回答
0

查看官方文档,CodeIgniter URLs

您可以使用带有一些简单规则的 .htaccess 文件轻松删除此文件。以下是此类文件的示例,使用“否定”方法重定向除指定项目之外的所有内容:

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

此外,如果您使用 Apache,请将 .htaccess 文件放在您的根 Web 目录中。有关更多信息,请查看Codeigniter .htaccess

于 2013-01-04T21:30:54.787 回答