0
最近,我们重组了我们的一个客户的大型网站。这导致该网站上的所有新闻都位于不同的地方。问题是,谷歌缓存仍然显示他们在旧的位置,导致很多404未找到(其约1400新闻条目)。使用RegEx重定向使用来自文件的数据
通常情况下,使用稍微简单的正则表达式的重定向会很好,但不仅是新闻的路径发生了变化,还有一些参数。例如:
旧的URL:
http://www.customers-url.com/old/path/to/the/news/details/?tx_ttnews%5Btt_news%5D=67&cHash=a782f3027c4d00face6df122a76c38ed
如何在新的URL应该是这样的:
http://www.customers-url.com/new/path/to/news/?tx_news_pi1%5Bnews%5D=65
正如你所看到的,参数D
的确从67变到65的部分?
之前的网址也发生了变化。另外,tx_ttnews
已更改为tx_news
和tt_news
更改为news
而&cHash
部分确实完全消失。
我在下面的格式更改的IDS在CSV:
old_id, new_id
1,2
2,3
...etc...
同去的?
前更改的URL的一部分。由于即时通讯不完全是使用正则表达式的专家我的问题是:
这可以在.htaccess使用正则表达式(不知道它是否甚至可以使用文件作为输入)吗?那有多复杂?那么这样一个正则表达式会是怎样的呢?
你会*更好*制作一个页面,在URL'/ old/path/to/the news/details'上响应,这可以使用你的表来查找新的ID,在代码,然后以编程方式发布301。 –
所以你有一个新的路径(一个常量值改变为另一个常量),并且你想调整查询字符串。我有一个预感,这可能对'htaccess'太多了 - 我会倾向于保持旧路径不动,并让该程序只需对query-string进行必要的调整,然后使用新查询发出重定向到新路径-串。 – MBaas
感谢您的评论,我担心可能会在.htaccess中做很多事情。我可能会通过在可以粘贴到htaccess中的python脚本中制作重定向列表来完成此操作。我想你可以发表评论作为答案@ChrisLear。 – Stuffy