Codeigniter URI问题

时间:2018-06-21 10:07:05

标签: php codeigniter codeigniter-3

我正在为Web应用程序使用CI系统。直到昨天,一切都工作正常,但是当我点击以下网址时突然出现403错误:https://riidl.org/fablab/dell/123/rajdhiravani@gmail.com

但是如果我点击以下网址: https://riidl.org/fablab/dell/123/rajdhiravani@gmail.in

有效!

如果我尝试https://riidl.org/fablab/dell/123/rajdhiravani.com@gmail.com

有效!

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Fablab extends CI_Controller {

	function __construct()
	{
	        parent::__construct();
	        $this->load->library('session');
	        $this->load->model('fablab_model');
	        $this->load->model('login_model');
	}
	public function dell()
	{
	    $booking_id = $this->uri->segment(3);
		$email = $this->uri->segment(4);
		echo $booking_id;
		echo $email;
		exit;
	}
  
 }

我的.htaccess文件是:

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

DirectoryIndex index.php

<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
</ifmodule>

2 个答案:

答案 0 :(得分:0)

在文件application/config/config.php中,特别是在$config['permitted_uri_chars']中指定了CodeIgniter允许作为URL一部分的字符。

CodeIgniter指定的默认值不允许@字符成为URL的一部分。

如果要允许@字符,请编辑config.php文件,并将@字符添加到$config['permitted_uri_chars']的值中。

答案 1 :(得分:0)

您的Web服务器将.com视为域扩展名,因此由于在根目录中没有index.html或index.php文件,因此不允许直接访问。 网络服务器将始终先处理请求,然后再将其传递给codeigniter