将参数 url 重写为正常的 url 但它应该在重定向后得到原始的 url 参数
Rewrite parameter url to normal url but it should get original url parameters after redirect
原文URL:
https://www.example.com/all_users/user.php?id=1&subtype=p
预计URL:
https://www.example.com/user/john-doe.html
我尝试使用以下规则,它重定向到预期的 URL 但我不能使用新的 URL.
的参数(id 和子类型)
RewriteEngine on
RewriteCond %{QUERY_STRING} ^id\=1&subtype\=p$
RewriteRule ^all_users/user\.php$ https://www.example.com/user/john-doe.html? [R=301,L]
如何使用新 URL 的参数值。
示例:
重定向后,新的 URL 将是 https://www.example.com/user/john-doe.html
然后我应该能够用新的 URL.
获得原始参数值
$id = $_GET['id'];
$type = $_GET['subtype'];
根据您展示的示例和尝试,请尝试遵循 htaccess 规则。
请确保在测试您的 URL 之前清除您的浏览器缓存。
RewriteEngine ON
##External redirect here.
RewriteCond %{THE_REQUEST} \s/all_users/user\.php\?id=\d+&subtype=p\s [NC]
RewriteRule ^ user/john-doe.html? [R=301,L]
##Internal rewrite from here..
RewriteRule ^user/john-doe\.html/?$ all_users/user.php?id=1&subtype=p [QSA,NC,L]
原文URL: https://www.example.com/all_users/user.php?id=1&subtype=p
预计URL: https://www.example.com/user/john-doe.html
我尝试使用以下规则,它重定向到预期的 URL 但我不能使用新的 URL.
的参数(id 和子类型)RewriteEngine on
RewriteCond %{QUERY_STRING} ^id\=1&subtype\=p$
RewriteRule ^all_users/user\.php$ https://www.example.com/user/john-doe.html? [R=301,L]
如何使用新 URL 的参数值。
示例:
重定向后,新的 URL 将是 https://www.example.com/user/john-doe.html 然后我应该能够用新的 URL.
获得原始参数值$id = $_GET['id'];
$type = $_GET['subtype'];
根据您展示的示例和尝试,请尝试遵循 htaccess 规则。
请确保在测试您的 URL 之前清除您的浏览器缓存。
RewriteEngine ON
##External redirect here.
RewriteCond %{THE_REQUEST} \s/all_users/user\.php\?id=\d+&subtype=p\s [NC]
RewriteRule ^ user/john-doe.html? [R=301,L]
##Internal rewrite from here..
RewriteRule ^user/john-doe\.html/?$ all_users/user.php?id=1&subtype=p [QSA,NC,L]