1

提前感谢你们给我的所有帮助。我现在有点绝望,不知道该怎么办。我猜这个问题来自我的 base_url,但它也可能来自我的 .htaccess 有 url_rewriting 吗?我有一个适用于本地主机的代码点火器项目。

每当我点击一个链接时,它都会添加一个 "localhost:8888" :

我有一个带有以下 url 的页面:http://localhost:8888/my_project/ 当我单击此页面上的链接时,它指向我: http://localhost:8888/localhost:8888/my_project/procedure/学生

我不明白为什么它会在两者之间添加 localhost:8888 ?(如果我手动去掉 url 中的 localhost:8888,页面可以正常工作并加载)

这是定义我的 base_url 的常量文件:

define("URL", (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] );
define("SITE_URL", 'http://localhost:8888/my_project/');

这是我的 .htaccess :

Options +FollowSymlinks -Indexes
RewriteEngine On
#RewriteBase /

## in case the URL is not an actual FILE
RewriteCond %{REQUEST_FILENAME} !-f

## or an actual directory
RewriteCond %{REQUEST_FILENAME} !-d

## send everything to the index, for MVC
#RewriteRule ^.*$ ./index.php

RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]

DirectoryIndex index.php index.html

这也是我的 config.php base_url 行:

$config['base_url'] = 'http:/localhost:8888/my_project/';

链接在视图中生成如下:id);?> 所以应该给出例如 localhost:8888/my_project/teacher/7 但是当我将链接悬停时有 localhost:8888/localhost:8888/my_project/teacher/ 7

我做错什么了吗?

在此先感谢您的帮助!

4

1 回答 1

0

经过一系列调试(通过注释),结论是错误在配置文件中错误写入的基本 url。它应该从:

$config['base_url'] = 'http:/localhost:8888/my_project/';

$config['base_url'] = 'http://localhost:8888/my_project/';// notice double slash at beginning

因此,向我提出了荣誉勋章,我仍然在想,我应该把它当作指出我们每个人都经历过的这个愚蠢的错误,还是应该在现场某个地方等待一些最大的错误,然后接受这个应得的承认。:)

于 2018-04-13T13:37:41.927 回答