我想使用重写规则来清除我的 url

I would like to use Rewrite rule to clear my url

我想通过在 .htacces 中使用 RewriteRule 清除我的 url。

我想把/product/detail.php?id=red-shirt改成这样/product/red-shirt.

我尝试使用这个 RewriteRule ^/?product/([^/d]+)/?$ /product/detail.php?id=$1 [L, QSA] 但它不起作用。

我总是会收到 404 错误。 如果我将 /d 更改为 \d,我将收到内部服务器错误 500

您收到 404 是因为您的正则表达式有误。使用此规则解决此问题:

# If the request is not for a valid directory
RewriteCond %{REQUEST_FILENAME} !-d
# If the request is not for a valid file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^product/([^/]+)/?$ /product/detail.php?id= [L,NC,QSA]