【发布时间】:2013-01-07 04:07:40
【问题描述】:
我正在从 Wordpress 迁移到自定义编码内容管理系统,需要帮助使用 htaccess 转换旧 URL。
我有超过 2000 多篇具有以下 URL 结构的旧文章:
www.site.com/ID/post-title/
我需要将每个帖子重定向到使用帖子 ID 的自定义脚本:
www.site.com/post.php?id=ID
非常感谢任何帮助。
【问题讨论】:
我正在从 Wordpress 迁移到自定义编码内容管理系统,需要帮助使用 htaccess 转换旧 URL。
我有超过 2000 多篇具有以下 URL 结构的旧文章:
www.site.com/ID/post-title/
我需要将每个帖子重定向到使用帖子 ID 的自定义脚本:
www.site.com/post.php?id=ID
非常感谢任何帮助。
【问题讨论】:
你可以试试这个:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/([^/]+)/? [NC]
RewriteRule .* post.php?id=%1 [L,QSA]
它会默默映射:
http://www.site.com/ID/post-title/
到这里:
http://www.site.com/post.php?id=ID
其中ID 不是固定字符串,而是作为id 值传递给脚本的变量。
【讨论】:
R=301。
R flag 将修改它。它必须被静默映射。
[R=301,L,QSA],但是为什么会出现 404 错误是重要的问题。请在浏览器地址栏中的评论中复制粘贴测试过的 URL。 ¿ 脚本 post.php 是否存在,如果存在,它位于何处?