2015-12-21 2 views
0

Это мой сценарий входа. Я перенаправляю пользователя на /sws/index.php?user=$user, но я хочу использовать .htaccess для перенаправления их на /sws/index/user/$user.Как я могу переписать этот URL?

Переменная $user представляет собой имя пользователя пользователя!

Я пробовал много разных учебников, чтобы попытаться переписать URL-адрес, но они не сработали! Может ли кто-нибудь предложить скрипт .htaccess, который будет работать здесь? Кроме того, когда пользователь входит в систему, я хочу, чтобы URL-адрес был переписан автоматически.

<?php 

if (isset($_POST['login'])) { 

    include "functions/password.php"; 

    $email = $_POST['email']; 
    $password = $_POST['password']; 

    $result = mysqli_query($connect, "SELECT * FROM users0 WHERE email='$email'"); 
    $row = mysqli_fetch_array($result, MYSQLI_BOTH); 

    if (password_verify($password, $row['password'])) { 
     session_start(); 

     $_SESSION["id"] = $row['id']; 
     $_SESSION["first_name"] = $row['first_name']; 
     $_SESSION["last_name"] = $row['last_name']; 
     $_SESSION["email"] = $row['email']; 
     $_SESSION["company"] = $row['company']; 
     $user = $_SESSION['first_name'] . $_SESSION['last_name']; 

     header('Location: index.php?user=' . $user); 
    } else { 
     header('Location: index.php?error'); 
    } 
} 

?> 

ответ

1

Попробуйте:

RewriteRule ^index/user/(.*)$ index.php?user=$1 [L] 
0

Ниже Apache перенаправлять будет делать это (Даже URL имеет еще несколько аргументов также е-г: index.php? Пользователь = thanga & arg1 = тест).

RewriteRule ^index.php\?user\=([A-Za-z_0-9]*)(.*)$ index/user/$1$2 [R] 
0

Я перенаправлять пользователя на /sws/index.php?user=$user, но я хочу использовать .htaccess, чтобы перенаправить их на /sws/index/user/$user.

Это не то, что вы должны делать в .htaccess. Ваше приложение должно перенаправить их на номер /sws/index/user/$user, а затем использовать .htaccess (mod_rewrite) в внутренне переписать запрос на /sws/index.php?user=$user (настоящий URL-адрес). (Если вы сделаете это в .htaccess, тогда пользователь будет испытывать множественные/ненужные переадресации.)

Единственный раз, когда вам нужно будет сделать это в .htaccess, это если ранее URL был проиндексирован поисковыми системами или связан с ним. Но так как это часть вашего скрипта входа, то это , вероятно, не обязательно. (?)

Таким образом, измените ваш скрипт перенаправления:

header('Location: /sws/index/user/'.$user); 

Затем в .htaccess в корне документа, переписывают обратно запрос на полный URL (подобно тому, что devpro уже отправил):

RewriteEngine On 
RewriteRule ^sws/index/user/(.*)$ sws/index.php?user=$1 [L] 
Смежные вопросы