премахване на index.php?route=common/home Опенкарт 2.0.3.1

draghonaz

New Member
Здравейте как бих могъл да премахна визуализацията на index.php?route=common/home от опенкарт 2.0.3.1 дефолт темата без да ползвам разширения и/или модули.
 
От: премахване на index.php?route=common/home Опенкарт 2.0.3.1

През .htaccess да кажем, ама това е началната страница, кой човек премахва началната страница на сайта си :shock: Освен ако не си в процес на разработка, ама за това някъде има нещо като Maintenace mode

Ако става въпрос за вида на линковете, ей тук коментират нещо такова http://stackoverflow.com/questions/...route-common-home-from-opencart-version-1-5-1
 
Последно редактирано:
От: От: премахване на index.php?route=common/home Опенкарт 2.0.3.1

През .htaccess да кажем, ама това е началната страница, кой човек премахва началната страница на сайта си :shock: Освен ако не си в процес на разработка, ама за това някъде има нещо като Maintenace mode

Ако става въпрос за вида на линковете, ей тук коментират нещо такова http://stackoverflow.com/questions/...route-common-home-from-opencart-version-1-5-1

Ами идеята ми е следната.
След като клиент разгледа някой продукт и цъкне върху логото на магазина да се изписва http://site.com а не http://site.com/index.php?route=common/home
Не знам защо опенкарт го прави това и какъв им е бил замисъла.
Едно от съображенията ми са естетически, а другото е да е по-трудно разпознаваемо, че сайта е правен на опенкарт.
Не знам дали ако се добави пренаписване в .htaccess с rewrite rule това няма да ми се отрази зле по някакъв начин на сайта.
 
От: премахване на index.php?route=common/home Опенкарт 2.0.3.1

Това би трябвало да работи :

Код:
 RewriteCond %{QUERY_STRING} ^route=common/home$
RewriteCond %{REQUEST_METHOD} !^POST$
RewriteRule ^index\.php$ http://%{HTTP_HOST}? [R=301,L]


а може да пробваш и в търсачката с безплатни екстеншъни в сайта на Opencart

http://www.opencart.com/index.php?r...59&filter_search=common home&filter_license=0
http://www.opencart.com/index.php?r...13&filter_search=common home&filter_license=0
http://www.opencart.com/index.php?r...n home&filter_license=0&filter_download_id=41
 
От: премахване на index.php?route=common/home Опенкарт 2.0.3.1

Стан страхотен си!
Само, че не мога да си отговоря на въпроса, кое е по-добре с екстеншън или с реврайт руле от гледна точка на СЕО и не само.
Аз споделям мнението, че колкото по-малко екстеншъни и модули се добавян в опенкарт толкова по-добре.
Поне така си мисля.
Вероятно бихте могли да споделите мнение.
 
От: премахване на index.php?route=common/home Опенкарт 2.0.3.1

Честно ли ? Нито едното нито другото. Най-добре да си го оправиш в файла.

Стан страхотен си!
Само, че не мога да си отговоря на въпроса, кое е по-добре с екстеншън или с реврайт руле от гледна точка на СЕО и не само.
Аз споделям мнението, че колкото по-малко екстеншъни и модули се добавян в опенкарт толкова по-добре.
Поне така си мисля.
Вероятно бихте могли да споделите мнение.
 
От: премахване на index.php?route=common/home Опенкарт 2.0.3.1

Ето как става ....
Примерно сваляш единия хмл
да реем този
http://www.opencart.com/index.php?r...59&filter_search=common home&filter_license=0

Отваряш го с любимия си текстов редактор
и какво четем там ??

Код:
 <file path="catalog/controller/common/seo_url.php">

ще рече отваряш файла seo_url.php който се намира в catalog/controller/common/

Код:
  <search><![CDATA[} elseif ($key == 'path') {]]></search>

Намираш цитата } elseif ($key == 'path') и

Код:
 <add position="before"><![CDATA[				} elseif ($data['route'] == 'common/home') {
					$url .= '/'; 
					
					unset($data[$key]);]]></add>

<add position="before"> поставяш преди него } elseif ($data['route'] == 'common/home') {
$url .= '/';



unset($data[$key]);

Чиста работа

И това е

за повече инфо

http://www.predpriemach.com/showthread.php?t=47023
 
От: премахване на index.php?route=common/home Опенкарт 2.0.3.1

Направих това, което си описал така добре.
Всичко работи вече, както бях пожелал.
Изказвам отново благодарност към теб.
Така тук научавам много нови неща, което ми доставя удоволствие и носи удовлетворение.
 
От: премахване на index.php?route=common/home Опенкарт 2.0.3.1

Ето как се прави правилно.

Понеже не мога да прикача файла ще го постна тука.
Код:
<?xml version="1.0" encoding="UTF-8"?>
<modification>
        <name>SEO Friendly URLs for common pages</name>
        <version>1.0</version>
        <code>commonpagesurl</code>
        <author>agatha65.com</author>
  <file path="catalog/controller/common/seo_url.php">
	<operation>
	  <search><![CDATA[
	  class ControllerCommonSeoUrl extends Controller {
	  ]]></search>
	  <add position="after"><![CDATA[
	  private $urlCustom = array (
		'common/home' => '',
        'account/wishlist' => 'wishlist',
        'account/account' => 'my-account',
        'checkout/cart' => 'shopping-cart',
        'checkout/checkout' => 'checkout',
        'account/login' => 'login',
        'account/logout' => 'logout',
        'account/order' => 'order-history',
        'account/newsletter' => 'newsletter',
		'account/return/add' => 'return-add',
        'product/special' => 'specials',
        'affiliate/account' => 'affiliates',
        'checkout/voucher' => 'gift-vouchers',
        'product/manufacturer' => 'brands',
        'information/contact' => 'contact-us',
        'account/return/insert' => 'request-return',
        'information/sitemap' => 'sitemap',
        'account/forgotten' => 'forgot-password',
        'account/download' => 'downloads',
        'account/return' => 'returns',
        'account/transaction' => 'transactions',
        'account/register' => 'create-account',
        'product/compare' => 'compare-products',
        'product/search' => 'search',
        'account/edit' => 'edit-account',
        'account/password' => 'change-password',
        'account/address' => 'address-book',
        'account/reward' => 'reward-points',
		'account/voucher' => 'buy-gift-sertificate',
        'affiliate/edit' => 'edit-affiliate-account',
        'affiliate/password' => 'change-affiliate-password',
        'affiliate/payment' => 'affiliate-payment-options',
        'affiliate/tracking' => 'affiliate-tracking-code',
        'affiliate/transaction' => 'affiliate-transactions',
        'affiliate/logout' => 'affiliate-logout',
        'affiliate/forgotten' => 'affiliate-forgot-password',
        'affiliate/register' =>  'create-affiliate-account',
        'affiliate/login' => 'affiliate-login'
	  );
	  ]]></add>
	</operation>
	<operation>
	  <search><![CDATA[
	  $this->request->get['route'] = 'error/not_found';
	  ]]></search>
	  <add position="replace"><![CDATA[
	  if (in_array($this->request->get['_route_'], $this->urlCustom)) {
		$this->request->get['route'] = array_search($this->request->get['_route_'], $this->urlCustom);
	  } else {
		$this->request->get['route'] = 'error/not_found';
	  }
	  ]]></add>
	</operation>
	<operation>
	  <search><![CDATA[
	  unset($data[$key]);
	  ]]></search>
	  <add position="replace"><![CDATA[
	  unset($data[$key]);
	  } else {
		$this->urlCustom = array_flip($this->urlCustom);
		if (in_array($data['route'], $this->urlCustom)) {
			$url = '/' . array_search($data['route'], $this->urlCustom);
		}
	  $this->urlCustom = array_flip($this->urlCustom);
	  ]]></add>
	</operation>
  </file>
</modification>

Копираш това в един файл и го наричаш
seo-urls-common-pages.ocmod.xml

Или както си искаш, но ЗАДЪЛЖИТЕЛНО да завършва на .ocmod.xml

Запазваш във енкодинг utf8 without BOM
И го инсталираш с екстеншън инсталъра. След това отиваш на модификации и натискаш горе в дясно рефреш.

От линя 14 до линия 51 са зададени общите урл-и можеш да ги промениш както ти харесва, но само ако знаеш какво правиш.
Преди това махни всички промени, които си правил.

Едит:
Добра практика е да не се променят основни файлове. Затова са модификаторите.
След време ако се добави нещо и направи конфликт с поетапно изключване се вижда къде е проблема.
 
От: премахване на index.php?route=common/home Опенкарт 2.0.3.1

Благодаря на @agatha65 за предоставения екстеншън ще го тествам и него.
Все пак съм малко объркан нали екстеншъна прави модификация на кор файла, а това което направихме на ръка с бат @СТАН си беше модификация но не чрез оцмод модула на Опенкарт, а ръчно.
Тоест не виждам в какво се състои проблема, ако добре си запомнил, какво точно и къде си модифицирал да го направиш на ръка вместо с оцмод модула.
Малко се обърках :)
 
От: премахване на index.php?route=common/home Опенкарт 2.0.3.1

Няма проблем!
Идеята на agatha65 е че по-добре да ползваме модификатори от колкото да шарим по ядрото на сайта.
Още повече че лаици като нас никога няма да седнат да коментират промените и етц.
Та не дай си Боже, се наложи да сменяме нещо или модификация с модификация се бият нещо, много по трудно ще се сетим какво сме преправяли в ядрото.
Докато един ХМЛ файл, примерно , само го преименуваш и виждаш бие ли се с нещо или не.

Едит:
Добра практика е да не се променят основни файлове. Затова са модификаторите.
След време ако се добави нещо и направи конфликт с поетапно изключване се вижда къде е проблема.
 

Горе