Php 多重重写规则不起作用

Php 多重重写规则不起作用,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,URL重写是一场噩梦,我已经经历了很多天了。 我正在尝试重写url,如下所示: example.com/playery.php?room=abc123到example.com/room/abc123 example.com/index.php?room=abc123&action=joinTOexample.com/join/abc123 我能够成功地重写第一个URL(如第一种情况),但无法正确地重写第二个URL。它被重写为example.com/room/join/abc123。我知道第一

URL重写是一场噩梦,我已经经历了很多天了。
我正在尝试重写url,如下所示:

  • example.com/playery.php?room=abc123
    到example.com/room/abc123
  • example.com/index.php?room=abc123&action=join
    TOexample.com/join/abc123
我能够成功地重写第一个URL(如第一种情况),但无法正确地重写第二个URL。它被重写为
example.com/room/join/abc123
。我知道第一条规则适用于这两种情况,然后htaccess的执行停止。但是,如何设法获得所需的解决方案呢

HTACCESS

RewriteBase /
RewriteEngine On

RewriteCond %{REQUEST_FILENAME}.php !-f
RewriteRule ^room/([A-Za-z0-9]+)$ playground.php?room=$1 [L]

RewriteCond %{REQUEST_FILENAME}.php !-f
RewriteRule ^join/([A-Za-z0-9]+)$ index.php?room=$1&action=join [L]

您的问题不在于URL重写,而是与您的
playerly.php
有关。它具有相对URL而不是绝对URL。请将
join/abc123
更改为
/join/abc123

您的
.htaccess

你应该改变

RewriteCond %{REQUEST_FILENAME}.php !-f


因此,您在示例中显示的重写规则正在运行,您想再添加两条规则来执行您在问题中提出的要求吗?只有我的第一条规则有效。第二条规则给出的输出类似于
example.com/room/join/abc123
,但我想要
example.com/join/abc123
第二条规则给出的输出是
index.php?room=abc123&action=join
,应该是
example.com/join/abc123
但它不是。它给了我404
http://example.com/index.php?room=abc123&action=join
有效吗?
RewriteCond %{REQUEST_FILENAME} !-f