2016-06-28 6 views
0

У меня есть этот код, который я пытаюсь переписать два параметра вроде этого.Дружественный URL-адрес с двумя параметрами htaccess

Ex: www.mywebsite.com/chat.php?room=12 & имя = my_room_name

переписать так:

www.mywebsite.com/chat/12/my_room_name

И:

то, если у меня есть этот последний дружеский URL в PHP

если я пишу

$room = $_GET['room'] ; 
    $name = $_GET['name'] ; 
    echo $room ."<br />"; //echo -> 12/my_room_name --> wrong should be 12 
    echo $name ; // echo nothing . should be my_room_name 

это мой Htaccess код, который у меня есть

RewriteEngine on 
    RewriteCond %{THE_REQUEST} ^[A-Za-z0-9]{3,}\s/+(?:chat\.php)?\?room=([^\s]+)&name=([^\s]+)? [NC] 
    RewriteRule^/chat/%1/%2? [R=301] 
    RewriteCond %{SCRIPT_FILENAME} !-d 
    RewriteCond %{SCRIPT_FILENAME} !-f 
    RewriteRule ^chat/(.*)$ chat.php?room=$1&name=$2 [QSA] 

    RewriteBase/
    RewriteCond %{THE_REQUEST} /chat\.php\?r=([^\s&]+) [NC] 
    RewriteRule^chat/%1? [R=301,L,NE] 
    RewriteRule ^chat/([A-Za-z0-9-]+)/?$ chat.php?r=$1 [NC,L,QSA] 

Я donbt знаю, если есть что-то неправильно, Im новый для htaccess.

Как это можно решить благодаря вашей поддержке?

+0

Иными словами, вы хотите, чтобы '/ chat/12/my_room_name' был переписан в' chat.php? Room = 12 & name = my_room_name'? Почему вы используете 'RewriteCond% {THE_REQUEST}^[A-Za-z0-9] {3,} \ s/+ (?: chat \ .php)? \? Room = ([^ \ s] +) & name = ([^ \ s] +)? [NC] 'затем переписать на'/chat /% 1 /% 2? '? – Ultimater

+0

Нет, я не хочу переписывать снова, я просто хотел получить номер и имя, но я не смог. –

+0

Как насчет 'RewriteEngine on'? У вас есть эта строка в вашем файле htaccess? – cachique

ответ

2

Не уверен, что вы пытаетесь выполнить, усложняя файл .htaccess. Простой файл .htaccess, который только для чтения, это будет работать:

RewriteEngine On 
RewriteBase/
RewriteRule ^chat/([^/]*)/([^/]*)$ /chat.php?room=$1&name=$2 [QSA,L] 

Если вам нужна дополнительная функциональность, объяснить это здесь, и я могу изменить свой ответ.

+0

Я объяснил в своем вопросе, как я хочу, чтобы мой url был 'www.mywebsite.com/chat/12/my_room_name', а затем я смогу восстановить параметры «room» и «name» с этого URL-адреса. Надеюсь, что это ясно. Как вы видите, я попытался повторить их, но они дали мне неправильный результат, посмотрите, как я их отредактировал. –

+0

Ваша строка 'RewriteRule^chat /(.*)$ chat.php? Room = $ 1 & name = $ 2 [QSA]' is wrong поскольку он не содержит ссылок на $ 2. Я дал вам пересмотренное правило, которое должно работать. – Ultimater

+0

Я просто использую ваш код? или я должен заменить вашу последнюю строку на какую строку в моем коде? извините, как я сказал им новый –

Смежные вопросы