.htaccess 如何将ID为的URL重写为ID为的短URL

.htaccess 如何将ID为的URL重写为ID为的短URL,.htaccess,redirect,mod-rewrite,.htaccess,Redirect,Mod Rewrite,我们有一些问题与搜索引擎优化,需要重写网页id 从 到 所有id参数都有数值重新启动引擎 如何实现这一点?为了从/media/player/related.php?mode=related&video\u id=12345(包含查询字符串)重定向到/video/12345,您可以在.htaccess文件顶部执行以下操作 RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteCond %{QUERY_STRING} ^mode=related&video

我们有一些问题与搜索引擎优化,需要重写网页id 从

所有id参数都有数值<代码>重新启动引擎

如何实现这一点?

为了从
/media/player/related.php?mode=related&video\u id=12345
(包含查询字符串)重定向到
/video/12345
,您可以在
.htaccess
文件顶部执行以下操作

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} ^mode=related&video_id=(\d+)
RewriteRule ^media/player/related.php$ /video/%1 [R=302,L]
这与示例中提到的源URL相匹配,但捕获的
video\u id
URL参数的值除外,并假定其仅为数字。这还只是测试查询字符串是否以声明的查询字符串开头,因此忽略任何其他URL参数

如果要将
302
(临时)状态更改为
301
,但必须在检查其工作正常后才能执行。(浏览器会硬缓存301s,因此可能导致测试出现问题。)

大概,您有现有的指令或某种前端控制器,它们已经将
/video/12345
重写回“真实”URL?对
REDIRECT\u STATUS
环境变量的检查是为了防止重定向循环,假设是这种情况。

的可能重复
example.com/video/12345
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} ^mode=related&video_id=(\d+)
RewriteRule ^media/player/related.php$ /video/%1 [R=302,L]