【问题标题】:base_url() and 403 error in CodeIgniterCodeIgniter 中的 base_url() 和 403 错误
【发布时间】:2015-05-07 01:13:41
【问题描述】:

在 HTML 视图中,css 链接代码如下所示:

<link href='www.jedendzien.pl/assets/css/style.css' rel='stylesheet'>

但是我的浏览器显示的是双域名地址

www.jedendzien.pl/www.jedendzien.pl/assets/css/style.css

所以我收到 403 错误。我通过

创建链接
<link href='<?php echo base_url(); ?>assets/css/style.css' rel='stylesheet'>

在 config.php 中我正在设置:

$config['base_url'] = 'www.jedendzien.pl/';

在我的 XAMPP 服务器中,一切正常,但问题仅出现在托管服务器上。

如果我更改 $config['base_url'] = '' 然后地址看起来和工作正常,但我仍然遇到 403 错误的问题。

我在根目录下的 .htaccess:

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

【问题讨论】:

  • 试试$config['base_url'] = 'http://www.jedendzien.pl/';
  • 谢谢,解决了双域问题,但 403 错误仍然存​​在。看这个例子:www.jedendzien.pl -> 纯html,没有css和js -> 链接www.jedendzien.pl/uzytkownik/rejestracja -> 403错误 -> 刷新 -> 403错误 -> 清除cookies -> 刷新 - > 注册表单 -> 提交 -> 403 错误...
  • 加载资源失败:服务器响应状态为 403(禁止)。这表明某些服务器配置错误。检查或删除这些资源的 .htacces 文件。
  • 我只有一个 .htaccess 文件,它在根目录下。

标签: php css .htaccess codeigniter http-status-code-403


【解决方案1】:

将 assets/css/style.css 的权限改为 644

如下更改基本网址

$config['base_url'] = 'http://www.jedendzien.pl/';

或者如果你有一个安全的网址,那么

$config['base_url'] = 'https://www.jedendzien.pl/';

将 .htaccess 更改为

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

【讨论】:

  • 谢谢,我希望这会有所帮助。它正在工作,但我已经在 CI 中使用新的空项目对其进行了测试(不再有工作时间)。稍后我将使用 jpg 文件添加更多控制器、模型和视图,然后我们会看到 :-)
  • 过去几年我们都在做同样的事情
  • 会话有问题。当我在自动加载文件中添加会话时,问题再次出现。没有会话没关系,但它是必需的,所以我需要在我的项目中使用会话。
  • 我不认为,会话会导致这个问题。因为你只设置了 css 路径。css 只加载 browsers.not 在服务器中。jedendzien.pl/assets/css/style.css我可以从 brawser 访问这个文件
  • 但问题仅在我使用会话时。如果没有加载会话库,所有 css 和 js 都可以正常加载。现在检查我的网站。我已经从自动加载配置文件中删除了会话库。它正在工作,但我无法登录。
【解决方案2】:

对于绝对网址,您应该包含协议,它可能是相对的,如下所示:

<link href='//www.jedendzien.pl/assets/css/style.css' rel='stylesheet'>

【讨论】:

  • 好的,但我不明白为什么 base_url() 可以在 hocalhost 上工作,为什么我仍然收到 403 错误?示例:www.jedendzien.pl -> 纯 html,没有 css 和 js -> 链接 www.jedendzien.pl/uzytkownik/rejestracja -> 403 错误 -> 刷新 -> 403 错误 -> 清除 cookie -> 刷新 -> 注册表单-> 提交 -> 403 错误...
  • @Bejkrools 也许您只是没有文件所需的权限。 chmod 应该解决这个问题。搜索以获取更多信息。
  • 使用 FileZilla 我将应用程序、系统和资产文件夹中的每个文件的 chmod 更改为“777”。还是 403 错误。
  • 但是当我在 root 中创建了另一个 index.php(不在 CI 中)并且我从 application/controllers/ 中包含了 file.php 时,就可以了。没有 403 错误...我不明白为什么?
【解决方案3】:

试试这个 .htacces 内容:

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

【讨论】:

    【解决方案4】:

    只需清空 base_url();在 config.php 文件中。 并从 www.codeigniter.com 的 codeigniter 3 的 .htaccess 文件中复制 .htaccess 的文本。

    【讨论】:

      猜你喜欢
      • 2019-04-13
      • 1970-01-01
      • 1970-01-01
      • 2018-07-26
      • 2016-04-17
      • 2018-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多