310 重定向 URL 包含 ? (问号)
310 Redirect a URL Containing a ? (question mark)
我目前正处于重新开发网站的最后阶段,但是在将旧博客 link 重定向到新格式时遇到了一些问题。
我们有入站 link 到旧博客的形式:
索引页
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
以上需要link到
http://www.domain_name.co.uk/news/1541-title-of-the-blog
但是'?'在 URL 结构的中间似乎打破了我的重写规则。我已经在线阅读了有关 QUERYSTRING 的信息,但是我认为这不能解决我的问题,因为 URL
中没有传递实际参数
下面的代码可以工作,但也会传递 '/?/archives/' 信息。
RewriteRule ^blog-page/index.php(.*)$ /news/ [R=301,L]
如有任何帮助,我们将不胜感激。由于某些原因,先前站点构建的其他几个部分使用了相同的 URL 结构。
您将需要一个额外的规则来匹配查询字符串。让你的 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]
我目前正处于重新开发网站的最后阶段,但是在将旧博客 link 重定向到新格式时遇到了一些问题。
我们有入站 link 到旧博客的形式:
索引页 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
以上需要link到
http://www.domain_name.co.uk/news/1541-title-of-the-blog
但是'?'在 URL 结构的中间似乎打破了我的重写规则。我已经在线阅读了有关 QUERYSTRING 的信息,但是我认为这不能解决我的问题,因为 URL
中没有传递实际参数下面的代码可以工作,但也会传递 '/?/archives/' 信息。
RewriteRule ^blog-page/index.php(.*)$ /news/ [R=301,L]
如有任何帮助,我们将不胜感激。由于某些原因,先前站点构建的其他几个部分使用了相同的 URL 结构。
您将需要一个额外的规则来匹配查询字符串。让你的 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]