2015-10-19 66 views
2

我有破折号在我的查询字符串,之后,从.htaccess文件重定向dahes改为%(252D)请检查下面提及的htaccess规则.htaccess文件添加特殊字符后重定向

RewriteCond %{THE_REQUEST} ^GET\ /hotels-details\?hotelcode=(\S+)&hotel_key=(\S+)&hnm=(\S+)&hct=(\S+) [NC] 
RewriteRule^/hotel/%3-in-%4-%1-%2? [R=301,L,B] 
RewriteRule ^hotel/(.*)-in-(.*?)-(\d+)-(\d+)/?$ /hotels-details/hotelcode=$3&hotel_key=$4&hnm=$1&hct=$2 [L] 

回答

1

您需要删除B标志和使用这样的:

RewriteCond %{THE_REQUEST} /hotels-details\?hotelcode=([^\s&]+)&hotel_key=([^\s&]+)&hnm=([^\s&]+)&hct=([^\s&]+) [NC] 
RewriteRule^/hotel/%3-in-%4-%1-%2? [R=301,L,NE] 

RewriteRule ^hotel/([^-]+)-in-([^-]+)-(\d+)-(\d+)/?$ hotels-details/hotelcode=$3&hotel_key=$4&hnm=$1&hct=$2 [L,QSA] 
+0

它的工作,但显示错误404(未找到) –

+1

它的工作谢谢:) –

+0

我们只是改变服务器就像它显示错误:请求超过了 限制的10个内部重定向由于可能的配置错误。如果需要,使用 'LimitInternalRecursion'来增加限制。使用'LogLevel 调试'来获得回溯。请帮助 –