多次重写规则不起作用

时间:2017-04-25 08:02:55

标签: php apache .htaccess mod-rewrite url-rewriting

好的URL重写是噩梦,我有很多天 我正在尝试重写网址:

  • example.com/playground.php?room=abc123 TO example.com/room/abc123
  • example.com/index.php?room=abc123&action=join TO example.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]

1 个答案:

答案 0 :(得分:0)

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

.htaccess

中也有一个小错误

你应该改变

RewriteCond %{REQUEST_FILENAME}.php !-f

RewriteCond %{REQUEST_FILENAME} !-f