我正在撞墙。我创建了一个网站的更新版本,我有各种动态页面,通过PHP提供。旧页面通过htaccess对它们进行了以下重写:
REWRITE之前的旧网址:
/directorio_hoteles/ean/hotel.php?cou=$1&hn=$2&city2=$3
REWRITE后的旧网址:
/directorio_hoteles/Mexico/hotel336813/Villa_Mercedes_Petit_Hotel.htm
这里是如何在原始的HTACCESS中编码:
RewriteRule ^([^/]*)/hotel([^/]*)/([^/]*)\.htm$ ean/hotel.php?cou=$1&hn=$2&city2=$3 [L]
我知道这种原始格式并不是实现此目的的最佳方式,但这是我必须使用的内容,并且动态网址已经在谷歌中编入索引。所以我需要采用上面已经重写的url并将其重定向(301)为新的动态格式:
REWRITE之前的新网址:
directorio-hoteles/index.php?p=hotel-page&a=$1&b=$2&c=$3
REWRITE后的新网址:
directorio-hoteles/hotel/Mexico/Villa_Mercedes_Petit_Hotel/336813
这是如何在新的HTACCESS文件中编码:
RewriteRule ^directorio-hoteles/hotel/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)?$ directorio-hoteles/index.php?p=hotel-page&a=$1&b=$2&c=$3 [NC,L]
所以我无法理解如何解决这个问题:
/directorio_hoteles/Mexico/hotel336813/Villa_Mercedes_Petit_Hotel.htm
重定向到此:
directorio-hoteles/hotel/Mexico/Villa_Mercedes_Petit_Hotel/336813
任何帮助都将被超越赞赏。提前感谢您解决此问题的任何尝试。
答案 0 :(得分:0)
您可以在DOCUMENT_ROOT/.htaccess
文件中将此规则用作第一条规则:
RewriteEngine On
RewriteRule ^(directorio_hoteles)/([^/]+)/(hotel)([^/]+)/([^.]+)\.htm$ /$1/$3/$2/$5/$4 [L,NC,NE,R=302]