带有两个参数htaccess的友好URL

时间:2016-06-28 21:03:26

标签: php .htaccess url-rewriting

我有这个代码,我试图重写这样的两个参数。

  

例如:www.mywebsite.com/chat.php?room = 12& name = my_room_name

像这样重写:

  

www.mywebsite.com/chat/12/my_room_name

AND:

然后,如果我有这个最后友好的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]

我不知道是否有什么不对,我是htaccess的新手。

感谢您的支持,如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

通过使.htaccess文件复杂化,不确定您要完成的任务。 一个只读它的简单.htaccess文件可以工作:

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

如果您需要任何其他功能,请在此处解释,我可以编辑我的答案。