2015-09-25 103 views
2

公开赛:zalora-kupon-kode-diskon-voucher-promosi/重定向旧的URL到新的URL,但旧的URL显示在新的URL

结果:http://www.situskupon.com/toko/zalora_indonesia-2.html?zalora-kupon-kode-diskon-voucher-promosi

,你会发现后,旧的URL?

有什么不对?

这是我的htaccess:

# Follow symbolic links in this directory. 
 
Options +FollowSymLinks 
 
IndexOptions +Charset=UTF-8 
 
AddDefaultCharset UTF-8 
 

 
RewriteEngine on 
 

 
RedirectMatch 301 zalora-kupon-kode-diskon-voucher-promosi/ http://www.situskupon.com/toko/zalora_indonesia-2.html 
 
RedirectMatch 301 lazada-kupon-kode-diskon-voucher-promosi/ http://www.situskupon.com/toko/lazada_indonesia-3.html 
 
RedirectMatch 301 hostgator-kupon-kode-diskon-voucher-promosi/ http://www.situskupon.com/toko/hostgator-5.html 
 

 
RewriteCond %{HTTP_HOST} ^situskupon\.com [OR] 
 

 
RewriteCond %{REQUEST_FILENAME} !-f 
 
RewriteCond %{REQUEST_FILENAME} !-d 
 

 
RewriteRule ^([a-zA-Z0-9-_]+)/$ index.php?$1 [QSA,L] 
 

 
## This should be a normal page 
 
RewriteCond %{REQUEST_FILENAME} !-f 
 
RewriteRule ^([a-zA-Z0-9-_]+)-(\d+).html$ index.php?pages=$2 [QSA,L] 
 

 
## This should be a page from the theme 
 
RewriteCond %{REQUEST_FILENAME} !-f 
 
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9-_]+)-(\d+).html$ index.php?$1=$3 [QSA,L] 
 

 
## This should be a page from theme 2 
 
RewriteCond %{REQUEST_FILENAME} !-f 
 
RewriteRule ^([a-zA-Z0-9-_]+).html$ index.php?tpage=$1 [QSA,L] 
 

 
## This should be a plugin 
 
RewriteCond %{REQUEST_FILENAME} !-f 
 
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9-_]+).(php|html|xml)$ index.php?$1=$2&ext=$3 [QSA,L] 
 

 
ErrorDocument 403 /index.php 
 
ErrorDocument 404 /index.php 
 
ErrorDocument 500 /index.php

回答

2

的问题是,你是混合mod_alias中(RedirectMatch)和mod_rewrite的(RewriteRule)指令和有冲突。不同的模块在不同的时间运行,这不一定与指令出现在.htaccess文件中的顺序相同。

会发生什么情况是,下面的内部重写触发第一,因为这也是URL匹配:

RewriteRule ^([a-zA-Z0-9-_]+)/$ index.php?$1 [QSA,L] 

然后你RedirectMatch触发后,产生重定向你所看到的。

解决方案...不要在两个模块中混合重写/重定向。更改mod_alias中重定向到使用mod_rewrite来代替:

例如:

RewriteRule ^zalora-kupon-kode-diskon-voucher-promosi/$ http://www.situskupon.com/toko/zalora_indonesia-2.html [R=301,L] 

请注意,您将需要清除浏览器缓存,因为301重定向缓存。由于这个原因,使用302(临时)重定向进行首次测试会更容易。

+0

你好,这个解决方案运作良好。解决。 –

+0

很高兴为你效劳。为了表明问题已解决,请将答案标记为“已接受”(点击左侧的勾号)。然后,这个问题从未答复的问题队列中解决。非常感谢,谢谢。 – MrWhite

相关问题