我目前正处于重新开发一个网站的最后阶段,但是在将旧博客链接重定向到新格式时遇到了一些困难。
我们有到旧博客的入站链接,形式如下:
索引页 name.co.uk/blog-page/
需要成为
name.co.uk/news/
这很容易,并且已经通过使用
RewriteRule ^blog-page$ /news/ [R=301,L]配置文件页 name.co.uk/blog-page/index.php?/archives/1541-title-of-the-blog.html
以上需要链接到
name.co.uk/news/1541-title-of-the-blog
然而,“?”在URL结构的中间,似乎破坏了我的重写程序。我在网上读过关于QUERYSTRING的文章,但是我不认为这解决了我的问题,因为URL中没有传递的实际参数
下面的代码工作,但也通过‘/?/存档/’信息。
RewriteRule ^blog-page/index.php(.*)$ /news/$1 [R=301,L]任何帮助都将不胜感激。由于某种原因,上一个站点构建中还有其他几个部分使用相同的URL结构。
发布于 2015-01-16 14:22:11
您将需要一个额外的规则来匹配查询字符串。让你的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]https://stackoverflow.com/questions/27985652
复制相似问题