在Opencart商店中的.htaccess
文件中重定向時出現問題。Opencart 301重定向
似乎任何URL與/index.php?_route_=
沒有得到重定向。
例如,這個工程:
redirect /old-url-here http://example.com/new-url?
這不:
redirect /index.php?_route_=some-url.asp http://example.com
任何想法或建議,以什麼可能得到這個工作?
在Opencart商店中的.htaccess
文件中重定向時出現問題。Opencart 301重定向
似乎任何URL與/index.php?_route_=
沒有得到重定向。
例如,這個工程:
redirect /old-url-here http://example.com/new-url?
這不:
redirect /index.php?_route_=some-url.asp http://example.com
任何想法或建議,以什麼可能得到這個工作?
您無法使用mod_alias'Redirect
指令與查詢字符串匹配。你需要使用mod_rewrite,如果你使用mod_rewrite,你可能會想要完全停止使用mod_alias。
嘗試:
RewriteEngine On
RewriteCond %{QUERY_STRING} route=some-url\.asp
RewriteRule ^index\.php$ http://example.com/
的另一件事是 - 除了喬恩的答案 - 像index.php?_route_=some-keyword
網址是/只創建內部,只有在情況下,你必須在SEO打開。在這種情況下,您點擊一個URL爲http://yourstore.com/some-keyword
的鏈接,該URL將被重寫爲index.php?_route_=some-keyword
。
因此,您不應該自己創建類似的URL,也不要嘗試從它們重定向。如果您需要重定向,請抓住第一個SEO網址將其重定向。
我們不知道你在哪裏把你變成了.htaccess
文件,但如果你在這個重寫規則仔細看
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
不僅你會發現它的存在最後的規則,但它也有這個交換機告訴Apache服務器,如果這個規則匹配,做一個URL重寫(附加查詢字符串[QSA
]和)停止匹配其他規則[L
] - 這是Last one。
如果您需要重定向只是一個特定的URL,這樣做同樣的方式重定向sitemap.xml的完成(例如),並把它前的最後一個重寫規則:
RewriteEngine On
RewriteBase/
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
# ...
# your new rule here - while the URL in the link is http://yourstore.com/some-url.asp
RewriteRule ^some-url.aspx$ index.php?route=some-folder/some-controller [L]
# ...
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]