htaccess - 无法写入从 GET 到“/”的重定向

htaccess - can't write redirect from GET to "/"

我正在尝试这个:

RewriteRule ^pages/product/([0-9]+) pages/product?id=

但是网站给我 404 错误,这一行有什么问题?如果我使用 get 参数转到页面,此页面加载正常:product?id=1,但 product/1 未加载。

htaccess 文件,它位于站点根目录中:

ErrorDocument 404 /404.php

RewriteEngine On
AddDefaultCharset utf-8

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ .php

RewriteRule ^pages/product/([0-9]+) pages/product?id=

更改规则的顺序并添加标志 esp L 以确保两个规则不会相互跨越:

ErrorDocument 404 /404.php
Options -MultiViews
RewriteEngine On
AddDefaultCharset utf-8

RewriteRule ^pages/product/(\d+) pages/product.php?id= [L,QSA,NC]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ .php [L]