.htaccess 将带有 id 参数的 URL 重定向到人类友好的 URL

.htaccess redirect URL with id param to human friendly URL

我正在尝试创建一个 URL 重定向,但到目前为止,我尝试过的所有操作都没有在网站上显示出任何效果。我知道 ModRewrite 已启用,因为还有其他重写正在进行。这样做的全部目的是处理旧版网站的 URLs。

我想要实现的是 URL 的重定向,格式如下:
/resources/view?id={id} 并将其重定向到 /resources/{id}.

我一直在尝试使用以下变体来做到这一点:

RewriteRule ^resources/view?id=([0-9+])$ /resources/ [R=301,L]

还有这个:

RewriteCond %{QUERY_STRING} ^id=([0-9]*)$
RewriteRule ^/resources/view$ /resources/? [R=301,L]

干杯。

您可以在站点根目录 .htaccess 中使用这 2 个规则:

Options -MultiViews
RewriteEngine On

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} /resources/view\?id=(\d+) [NC]
RewriteRule ^ /resources/%1? [R=301,L,NE]

# internal forward from pretty URL to actual one
RewriteRule ^resources/(\d+)/?$ resources/view?id= [L,QSA,NC]