【问题标题】:Redirect URL with query string to different file and maintain query string将带有查询字符串的 URL 重定向到不同的文件并维护查询字符串
【发布时间】:2018-10-24 14:53:23
【问题描述】:

我有使用以下内容的旧网址: mydomain.com/?page=article&cid=149&aid=1554

出于各种原因,我不得不更改旧 index.php 的名称(上面的那个 URL '使用')...文件名现在是 index_180311.php。所以那些旧链接不再起作用。不改变的查询字符串是 'page=' 部分......其余的可以是可变的。

那么,我需要什么 mod rewrite 命令才能将带有“page=”查询字符串的旧 URL 重定向到新的文件名/路径: mydomain.com/index_180311.php?page=article&cid=149&aid=1554

让他们再次工作? 我搜索了板子并尝试从其他线程更改其他 htaccess 命令,但没有成功(它通常最终导致我的整个站点崩溃),因为我认为我创建了无限循环。

非常感谢。

【问题讨论】:

  • 那么你有什么尝试?请添加您的尝试并解释它们有什么问题。您还希望我们如何帮助您进行尝试?或者你只是想让别人为你做你的工作? ;-) 你看......我们只能给你另一个建议,你会遇到同样的问题,你“什么都做不了”。这对任何人都没有帮助......
  • 我没有完全理解所有的命令,所以我不能真正告诉你我做了什么,除非我回去重新找到其他线程并重新修改代码再次无处可去;)否则我会......这次我肯定会说除了“无法工作”之外的结果。
  • 对不起,但这不是人们应该尝试实现某事的方式。如果你继续盲目地从互联网上复制 sn-ps,你也可以将你的密码发布到某个板上。你需要了解你在做什么!这意味着例如阅读文档。请理解,这需要您自己能够使用您的工具,您需要展示您的努力和尝试。这在“如何提问”中有明确的解释……
  • 希望您骑着马欣赏美景
  • 一点也不。我试图防止你犯我曾经犯过的同样的错误。我意识到了这些并开始阅读文档。你呢?

标签: .htaccess url mod-rewrite query-string


【解决方案1】:

我不会做外部重定向,试试类似

# check for the presence of the page parameter (and a value)
RewriteCond %{QUERY_STRING} ^(?:.*?&)??page=[^&]+
# silently pass requests with the parameter to the old one (the query string is passed on automatically when the substitution has no "?")
RewriteRule ^(?:index\.php)?$ index_180311.php [END]

【讨论】:

  • 感谢您的回复。这似乎工作得很好。唯一的问题是现在可以通过两个不同的 URL 访问相同的内容 - 即 publicresponse.com/index_180311.php?page=article&cid=884publicresponse.com/?page=article&cid=884。我不知道这是否对 SEO 有利或有其他负面影响?再次感谢。
  • 你说得对,这对 SEO 不利,所以不要发布指向该文件的链接。使用规范的 <meta> 删除文件名,这样它们就永远不会出现在搜索结果中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-25
  • 1970-01-01
  • 2020-12-14
  • 2015-03-25
  • 1970-01-01
  • 2014-07-08
相关资源
最近更新 更多