Я использую ajax (live-поиск) по vqmod.
Я включил мой SEO, и ссылки на продукты работают хорошо. Но когда я нажимаю на товар с помощью функции поиска, он выводит меня на старую ссылку:
index.php?route=product/product/&product_id=123
Мои текущие SEO ссылки выглядят так
shop/Datorkomponenter/Chassi/Aerocool-DS-Cube-Devil-Red
Я искал в файле .XML Vqmod, и я нашел этот код и, возможно, его подключение к старой ссылке.
select: function(event, ui) {
if(ui.item.value){
location = 'index.php?route=product/product/&product_id='+ui.item.value;
}else{
$('.button-search').trigger('click');
}
return false;
}
Есть ли способ изменить или изменить его? Может быть, перенаправление из .htaccess?
Возможные способы справиться с этим (в порядке уменьшения желательности):
Во всех этих сценариях вы захотите использовать ядро Opencart url
класс как это:
$url = $this->url->link('product/product', 'product_id=' . $product_id);
Вы можете проверить со следующим .Htaccess код.
Options +FollowSymlinks
# Prevent Directoy listing
Options -Indexes
# Prevent Direct Access to files
<FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">
Order deny,allow
Deny from all
</FilesMatch>
# SEO URL Settings
RewriteEngine On
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/
RewriteBase /yourshopfolder/
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^system/download/(.*) /index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
Создайте свой собственный файл htaccess в корневой папке и поместите в него код выше. Это будет работать.
Я проверил это в открытой корзине версии 2.0.2.0 +