0

请查看此帖子的编辑。我给出的最后一个代码示例是我想要完成的。我正在使用 147 行代码。我想我实际上并没有试图制定规则,而是试图找出带有这些变量的重定向。

好的,我已经研究了几个小时,正则表达式 apache 重写规则变得非常具体,我很难过。客户要求将旧站点 url 重写/重定向到新的 drupal 站点和具有 url 别名的相应页面。有 147 个变量(全部 1 - 216(乱序)) 示例: 我需要

/hardware/bikes.php?recordID=1 to redirect to http://www.bikerus.com/?q=hardware/first-bike-that-really-flies

然后

/hardware/bikes.php?recordID=2 to redirect to http://www.bikerus.com/?q=hardware/second-awesome-bike-that-really-flies

等等

这是我到目前为止所拥有的:

RewriteCond %{QUERY_STRING} ^recordID=([0-9]+)$

RewriteRule ^/hardware/bikes\.php?recordID=%1$ http://www.bikerus.com/?q=hardware/first-bike-that-really-flies

这显然不起作用,女士们和小伙子们有什么想法吗?

理想情况下,如果我能找出 Drupal 的另一个问题,我还没有弄清楚(多年来),那就太好了。 有一个这样的重定向:

redirect 301 /hardware/1.html   http://www.bikerus.com/hardware/first-bike-that-really-flies

而不是这个:

redirect 301 /hardware/1.html   http://www.bikerus.com/?q=hardware/first-bike-that-really-flies

但我的第一个问题是现在的优先事项。提前致谢。

编辑: 我试图重定向到的文件不是静态的,它们是 Drupal 数据库生成的 url 别名。

最后,是的,我需要制作 147 条个人记录(硬编码),我的问题是如何做到这一点:

redirect 301 /hardware/bikes.php?recordID=1   http://www.bikesrus.com/?q=hardware/random-bike-title-one
redirect 301 /hardware/bikes.php?recordID=2   http://www.bikesrus.com/?q=hardware/random-bike-title-two-ewhbcfn
redirect 301 /hardware/bikes.php?recordID=3   http://www.bikesrus.com/?q=hardware/random-bike-title-three-kxjhmuflr
redirect 301 /hardware/bikes.php?recordID=4   http://www.bikesrus.com/?q=hardware/random-bike-title-four-more-random-stuff

对于那些不知道的人,Drupal 有一个干净的 url 重写规则,它与我当前正在编辑的 .htaccess 文件一起提供:

RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

所以我也需要能够导航这个。

4

2 回答 2

0

您的第二个问题的问题是,redirect除了简单的重定向之外,它真的很臭。你需要一个RewriteRule来做这个:

redirect 301 /hardware/1.html   http://www.bikerus.com/?q=hardware/first-bike-that-really-flies

更像这样:

RewriteRule ^([a-zA-Z]+)/$ /?q=$1 [R=301,L]

或者也许是这样:

RewriteRule ^([a-zA-Z]+)/(.*)$ /?q=$1/$2 [R=301,L]

但在你的帖子中不清楚你first-bike-that-really-flies从哪里得到这些东西。所以不要明确如何在 Drupal 中处理它。非常具体到您的设置。

实际上只是在这里mod_rewrite回答了一个类似的问题。可能会给你更多的见解。

于 2013-02-02T04:35:03.697 回答
0

刚刚想通了。

RewriteCond %{THE_REQUEST} recordID=1
RewriteRule . http://www.bikesrus.com/hardware/bike-that-really-flies? [R=301,L]

两个都!!就我自己而言,需要更多的搜索。不同的是,这次我把“硬编码”这个词放到了我的搜索关键字中。感谢所有评论的人。

于 2013-02-02T06:05:36.130 回答