请查看此帖子的编辑。我给出的最后一个代码示例是我想要完成的。我正在使用 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]
所以我也需要能够导航这个。