.htaccess 将旧的.asp站点重定向到wordpress站点时出现问题
摘要: 我被要求将一个.asp站点迁移到Wordpress,但我在.htaccess重定向方面遇到了一些问题 我正在努力实现的目标: 页码:.htaccess 将旧的.asp站点重定向到wordpress站点时出现问题,.htaccess,redirect,mod-rewrite,.htaccess,Redirect,Mod Rewrite,摘要: 我被要求将一个.asp站点迁移到Wordpress,但我在.htaccess重定向方面遇到了一些问题 我正在努力实现的目标: 页码: domain.com/Some-Page-On-My-Site.asp 也重定向 domain.com/some-page-on-my-site/ domain.com/blog/the-greatest-post-title/ 职位: domain.com/articles.asp?title=The-Greatest-Post-Title 也重
domain.com/Some-Page-On-My-Site.asp
也重定向
domain.com/some-page-on-my-site/
domain.com/blog/the-greatest-post-title/
职位:
domain.com/articles.asp?title=The-Greatest-Post-Title
也重定向
domain.com/some-page-on-my-site/
domain.com/blog/the-greatest-post-title/
最终目标
- 使用小写字母与默认Wordpress permalink结构保持一致
- 仅将.asp URL请求转换为小写,而不是站点的其余部分
我尝试过的 这会将旧.asp页面的URL请求转换为新的URL结构:
RewriteRule ^(.*)\.asp$ /$1/? [L,R=301]
这些尝试不会转换旧.asp帖子的URL请求:
# Try 1
RewriteRule ^articles\.asp?title=(.+)$ /blog/$1/ [L,R=301]
# Try 2
RewriteRule ^articles\.asp?title=(.*)$ /blog/$1/ [L,R=301]
# Try 3 - Not that this would probably work but was an attempt
RewriteCond %{QUERY_STRING} (^|&)title\=(.+)($|&)
RewriteRule ^articles\.asp$ /blog/$1/? [L,R=301]
我确认我可以进行1对1重定向,但与上面的页面结构不同,我可以在.asp之前键入任何内容,而它只是删除了.asp
RewriteCond %{QUERY_STRING} (^|&)title\=Duck\-Feet\-Wine($|&)
RewriteRule ^articles\.asp$ /blog/duck\-feet\-wine/? [L,R=301]
有人对此有什么见解吗?还是我认为我能做到这一点就疯了?
我已经读了大约100多页,我被难住了,包括RewriteCond是如何工作的。我很高兴能够将页面重定向到工作状态,现在可以将查询字符串转换为类似静态的链接,以使用Wordpress的小写permalink结构。我已经阅读了更多的文档和教程,我很困惑。我已经能够尝试一些有效的方法,但它们是1对1链接。域名,com/articles.asp?title=post one.>>链接也>>域,com/blog/post one/但不幸的是,我还没有弄清楚如何通配符查询链接并重定向到新的url结构。这似乎应该很容易,但我确实知道,出于这个原因,有时它也不是最容易使用的。我想让它尽可能动态,这样网站就不会有500行重定向代码。不好玩。RewriteRule仅与请求URL的路径组件匹配-如果需要检查查询字符串内容,则需要在RewriteRule之前使用RewriteCond进行检查。请尝试以下两行,
RewriteCond%{query_string}^title=(.*)$
RewriteRule^articles\.asp$/blog/%1/[L,R=301]
–注意在替换中如何使用%1
,从条件中返回匹配。(并将其放在重写与^(.*)\.asp$
匹配的所有内容的更通用规则之前,否则将处理articles.asp?title=…
)我如何将articles.asp从我编写的通用通用规则中排除?将它们按正确的顺序排列,这应该足够了——你的规则总是从更具体到不那么具体。L
标志应防止下列规则在文章的规则匹配后应用。