php - 如何编写 .htaccess 重定向来查找所有号码?

标签 php regex .htaccess numbers hyperlink

我正在尝试找出一个正则表达式,该表达式将在 URL 中查找一些数字,并在我重定向到的 URL 中使用它们。

Redirect 301 /page.php?id=95485666 http://test.com/profile/info/id/95485666

我想也许

Redirect 301 /page.php?id=([0-9]+) http://test.com/profile/info/id/$1

但是好像没用

此外,如果我执行 301 重定向,我必须将代码保留在 .htaccess 文件中多长时间? Google 何时会发现新链接是好的链接?

最佳答案

您无法匹配 Redirect 指令中的查询字符串(也无法匹配 RedirectMatch/RewriteRule 中的查询字符串)。您需要使用 mod_rewrite 的 %{QUERY_STRING} var:

RewriteEngine On
RewriteCond %{QUERY_STRING} (^|&)id=([0-9]+)($|&)
RewriteRule ^/?page\.php$ http://test.com/profile/info/id/%2? [L,R=301]

关于php - 如何编写 .htaccess 重定向来查找所有号码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12356223/

相关文章:

c# - 不匹配带有开头双引号的 YouTube 网址 - C# Regex

正则表达式检查 4 个连续数字

regex - 带有正则表达式的 Bash 脚本在 Ubuntu 上不起作用

linux - 如何查看哪个 PHP 脚本消耗的内存最多?

php - Laravel 5 在 ajax 请求上随机发送 500 Internal Server Error

php - 用于YouTube或Vevo的正则表达式

php - 如何忽略 Laravel 路由中的站点地图 url?

php - 使用 php 从数据库创建页面 [就像框架或 cms 正在做的那样]

.htaccess 重定向主域而不是子文件夹

javascript - 如何将数据从一个html页面传递到php中的第二个页面?