Korektní URL u OpenCart na WEDOS s aliasem nebo subdoménou - fórum

Kategorie: Aplikace, CMS / ostatní aplikace

přidatNový příspěvek

Chcete-li odebírat toto téma e-mailem, přihlašte se nebo se nejprve zaregistrujte.

Korektní URL u OpenCart na WEDOS s aliasem nebo subdoménou

Martin Bugner, 08.08.2014 15:44:29

Ahoj,

trochu jsem lavíroval s korektní URL při instalaci OpenCart na multihosting s použitím alias domén (bude to fungovat i u subdomén).

Řešení je jednoduché:
Před instalací stačí malá úprava souboru index.php ve složce install/, kterou jste nahráli nebo se chystáte nahrát na server.

Původní /* dirname($_SERVER['SCRIPT_NAME'] */
<code>
// HTTP
define('HTTP_SERVER', 'http://' . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['SCRIPT_NAME']), '/.\\') . '/');
define('HTTP_OPENCART', 'http://' . $_SERVER['HTTP_HOST'] . rtrim(rtrim(dirname($_SERVER['SCRIPT_NAME']), 'install'), '/.\\'). '/');
</code>
přepište na /* dirname($_SERVER['REQUEST_URI'] */
<code>
// HTTP
define('HTTP_SERVER', 'http://' . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['REQUEST_URI']), '/.\\') . '/');
define('HTTP_OPENCART', 'http://' . $_SERVER['HTTP_HOST'] . rtrim(rtrim(dirname($_SERVER['REQUEST_URI']), 'install'), '/.\\'). '/');
</code>
Soubor uložte a pak teprve nahrajte na server.
Potom spusťte instalaci OpenCart.

Re: Korektní URL u OpenCart na WEDOS s aliasem nebo subdoménou

Martin Bugner, 08.08.2014 17:27:47

Doplňuji, že jsem nahradil 'SCRIPT_NAME' za 'REQUEST_URI' ještě v souborech:

index.php v hlavní větvi

// Store
if (isset($_SERVER['HTTPS']) && (($_SERVER['HTTPS'] == 'on') || ($_SERVER['HTTPS'] == '1'))) {
$store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`ssl`, 'www.', '') = '" . $db->escape('https://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['REQUEST_URI']), '/.\\') . '/') . "'");
} else {
$store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`url`, 'www.', '') = '" . $db->escape('http://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['REQUEST_URI']), '/.\\') . '/') . "'");
}

a souboru startup.php v adresáři SYSTEM/

// Windows IIS Compatibility
if (!isset($_SERVER['DOCUMENT_ROOT'])) {
if (isset($_SERVER['SCRIPT_FILENAME'])) {
$_SERVER['DOCUMENT_ROOT'] = str_replace('\\', '/', substr($_SERVER['SCRIPT_FILENAME'], 0, 0 - strlen($_SERVER['REQUEST_URI'])));
}
}

if (!isset($_SERVER['DOCUMENT_ROOT'])) {
if (isset($_SERVER['PATH_TRANSLATED'])) {
$_SERVER['DOCUMENT_ROOT'] = str_replace('\\', '/', substr(str_replace('\\\\', '\\', $_SERVER['PATH_TRANSLATED']), 0, 0 - strlen($_SERVER['REQUEST_URI'])));
}
}

if (!isset($_SERVER['REQUEST_URI'])) {
$_SERVER['REQUEST_URI'] = substr($_SERVER['REQUEST_URI'], 1);

if (isset($_SERVER['QUERY_STRING'])) {
$_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
}
}

Bez toho sice proběhla dobře instalace s výše uvedenou úpravou, ale po nainstalování a úpravách v Administraci OpenCart pak vyhazovala chybu vlastní stránka.
Nyní se e-shop chová jak má.

Přihlášení zákazníka

Nemáte ještě zákaznický účet? Registrace

Copyright © WEDOS, 2018

Facebook RSS