.htaccess Htaccess文件,将不带查询的旧模式重定向到带查询字符串的新模式

.htaccess Htaccess文件,将不带查询的旧模式重定向到带查询字符串的新模式,.htaccess,.htaccess,我正在将网站迁移到一个新的技术平台 无论如何,我需要将一些旧模式重定向到带有查询字符串的新模式: 大概是这样的: www.example.com/DirA/DirB/OldPage-123456 需要成为 www.example.com/search?q=OldPage 因此,我需要删除内部目录,删除尾随编号(这是旧站点中的数据库主键),并将主键之前的部分重定向到带有搜索参数的新搜索页面。您可以使用这样的代码 RewriteEngine On RewriteCond %{HTTP} off Re

我正在将网站迁移到一个新的技术平台

无论如何,我需要将一些旧模式重定向到带有查询字符串的新模式:

大概是这样的:

www.example.com/DirA/DirB/OldPage-123456

需要成为

www.example.com/search?q=OldPage


因此,我需要删除内部目录,删除尾随编号(这是旧站点中的数据库主键),并将主键之前的部分重定向到带有搜索参数的新搜索页面。

您可以使用这样的代码

RewriteEngine On
RewriteCond %{HTTP} off
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule ^DirA/DirB/OldPage-123456/(.*)$ /search?q=OldPage/$1 [R=301,NC,L]
还是这个

RewriteEngine On
RewriteCond %{HTTP} off
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteRule ^DirA/DirB/(.*)$ /search?q=/$1 [R=301,NC,L]

是的,这是可行的,尽管我不确定上一个方法最后一行中$1之前的正斜杠。正斜杠意味着之后的一切都没有改变,保持原样。这有意义吗?但总的来说,这或多或少只是一个起点,并不是一个精确的解决方案,因为我不知道所有需要应用规则的页面。干杯