我目前正处于重建网站的最后阶段,但在将旧博客链接重定向到新格式方面遇到了一些麻烦。
我们有以下形式的旧博客的入站链接:
索引页 http://www.domain_name.co.uk/blog-page/
需要成为
http://www.domain_name.co.uk/news/
这很容易,并且已经使用
完成RewriteRule ^blog-page$ /news/ [R=301,L]
个人资料页面 http://www.domain_name.co.uk/blog-page/index.php?/archives/1541-title-of-the-blog.html
以上需要链接到
http://www.domain_name.co.uk/news/1541-title-of-the-blog
然而'?'在URL结构的中间似乎打破了我的rewriterule。我在网上看过有关QUERYSTRING的内容,但我不相信这解决了我的问题,因为URL中没有传递实际参数
以下代码有效,但也会传递'/?/ archives /'信息。
RewriteRule ^blog-page/index.php(.*)$ /news/$1 [R=301,L]
任何帮助都会受到大力赞赏。上一个站点构建还有其他几个部分由于某种原因使用相同的URL结构。
答案 0 :(得分:1)
您需要一个匹配查询字符串的附加规则。让你的DOCUMENT_ROOT/.htaccess
像这样:
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^/archives/(.+?)\.html$ [NC]
RewriteRule ^blog-page/index\.php$ /news/%1? [R=301,NC,L]
RewriteRule ^blog-page$ /news/ [R=301,L,NC]