提取 ID 并重写 URL

Extract ID and rewrite URL

我将一个网站移动到 wordpress。因此我想将旧的 posts 重定向到相应的 wordpress post.

旧的 url 包含一个我想提取并映射到 wordpress 的 ID。

旧 URL 的示例:

www.mydomain.com/include.php?BLABLAcontentid=XXBLABLA' 

我想映射到新的 URL:

'www.mydomain.com/?p=XX'

其中 XX 是包含 0-9 的数字

我正在尝试通过以下规则扩展 wordpress 重写

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

RewriteRule ^include(.*)$ index%1 [PT]
RewriteRule ^include(.*)$ index [L,QSA]

RewriteCond %{QUERY_STRING} (.*)contentid=([0-9]+)
RewriteRule .* /?p=%2 [R,L]

如果我调用 'www.mydomain.com/index.php?BLABLAcontentid=XXBLABLA' 它工作正常,因此我尝试用索引替换 include,但这似乎不起作用。关于我如何继续这里的任何提示?

提前致谢和问候,

蒂姆

您需要将重定向规则放在您的 wordpress 路由规则之前。重定向需要在内部路由发生之前发生。尝试:

RewriteCond %{QUERY_STRING} (.*)contentid=([0-9]+)
RewriteRule ^include\.php$ /?p=%2 [R,L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]