URL重写CodeIgniter - 使用GET ID

时间:2016-09-11 15:50:02

标签: php .htaccess codeigniter

我阅读了关于下一个问题的所有主题,但我无法解决问题.. 在我的CodeIgniter项目中,我有这个链接来查看用户profil:

user/profil?id=1

但我想要

user/profil/1

我无法找到解决方案..在哪里放代码?我需要ROUTE或.htaccess吗? 我的htacess看起来像这样。

#   Empêche la visualisation de l'arborescence, n'a rien à voir avec le masquage du « index.php ».
Options -Indexes

#   Active le module de réécriture d'URL.
RewriteEngine on

#
#   Fixe les règles de réécriture d'URL. Ici, nous utilisons une liste blanche.
#

#   Toutes les URL qui ne correspondent pas à ces masques sont réécrites.
RewriteCond $1 !^(index\.php|assets/|robots\.txt|uploads)

#   Toutes les autres URL vont être redirigées vers le fichier index.php.
RewriteRule ^(.*)$ index.php/$1 [L]

我的profil控制器:

public function profil()
{
    // Récupération de l'ID dans l'url
    $this->data['id'] = $this->input->get('id', TRUE);

// Statistiques du profil
$this->data['countReview'] = $this->review_model->countReview($this->data['id']);

// Chargement du profil de l'utilisateur
if (ctype_digit($this->data['id'])) {
    if ($this->user_model->getUser($this->data['id'])) {
        $this->data['users'] = $this->user_model->getUser($this->data['id']);
        $this->data['reviewsNext'] = $this->review_model->getReviewsByUser_Next($this->data['id']);
        $this->data['reviewsPrevious'] = $this->review_model->getReviewsByUser_Previous($this->data['id']);
    } else {
        $this->session->set_flashdata('error', 'Utilisateur introuvable.');
    }
} else {
    $this->data['error_report'][] = "Utilisateur introuvable.";
}

$this->load->view('template/header');
$this->load->view('template/menu');
$this->load->view('user/profil', $this->data);
$this->load->view('template/footer');

}

感谢您的回答。

1 个答案:

答案 0 :(得分:0)

# Redirect profile.php?id=1 to profile/1
RewriteCond %{THE_REQUEST} \s/profile\.php\?id=([0-9]+)\s [NC]
RewriteRule ^/profile/%1? [R=301,L]
RewriteRule ^profile/([0-9]+)$ /profile.php?id=$1 [L]

应该工作。