过去5年,我们在Magento开设了一家单店网站。现在,我们在同一个域下以英语打开一个新的商店视图。这意味着我们正在将商店代码添加到url: https://xxxxx.com/es/»西班牙语 https://xxxxx.com/en/»英语
出于SEO的原因,必须创建西班牙商店从/到/ es /的所有重定向。我尝试了不同的方法:
Apache :重定向每个URL
RewriteCond %{REQUEST_URI} !^/(es|en|admin|skin|js|media)/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* /es%{REQUEST_URI} [R=301,NC,L]
index.php :重定向某些模式
$containsEs = false;
$containsEn = false;
$containsReserved = false;
if (strpos($_SERVER['REQUEST_URI'], '/es/') !== false) {
$containsEs = true;
}
if (strpos($_SERVER['REQUEST_URI'], '/en/') !== false) {
$containsEn = true;
}
// Other exceptions
if (strpos($_SERVER['REQUEST_URI'], '/admin/') !== false || strpos($_SERVER['REQUEST_URI'], '/admin/') !== false) {
$containsReserved = true;
}
if (Mage::getStoreConfig('web/url/use_store') == '1' && isset($userStore['store']) && !$containsEs && !$containsEn && !$containsReserved) {
header("HTTP/1.1 301 Moved Permanently");
header('Location: '. substr($userStore['store']->getBaseUrl(), 0, -1) . $_SERVER['REQUEST_URI']);
exit;
} elseif (!isset($userStore['store']) && !$containsEs && !$containsEn && !$containsReserved) {
header("HTTP/1.1 301 Moved Permanently");
$spanishStore = Mage::getModel('core/store')->load('1');
header('Location: ' . substr($spanishStore->getBaseUrl(), 0, -1) . $_SERVER['REQUEST_URI']);
exit;
}
我发现这两个选项都不是“完美”的。有时在使用apache重定向和使用index.php重定向时,使用modpagespeed会失败,这是一个糟糕的选择。
有人能提出一个更好,更好的选择吗?
谢谢