.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]
我正在尝试创建一个 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]