Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Simple URL v1.0 (SEO-URL)


smind

Recommended Posts

Включил у себя SEO-URL, но кое где пробивались сылки вида ...index.php/route... порывшись на opencart.com нашел Simple URL v1.0 установил. Теперь все ссылки стали в нормальном ЧПУ виде. правда есть маленький "косячок" ссылки в /admin/ тоже заменялись из-за чего бэкэнд не работал. но этота проблема легко обходится вот таким патчем.

-if ($registry->get('config')->get('config_seo_url')) {
+if ($registry->get('config')->get('config_seo_url') and ! preg_match('/\/admin\//', $this->output)) {

надеюсь многим будет полезно

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

-if ($registry->get('config')->get('config_seo_url')) {
+if ($registry->get('config')->get('config_seo_url') and ! preg_match('/\/admin\//', $this->output)) {
И что это за непонятный код?))
Все понятно, Добавить строчку

if ($registry->get('config')->get('config_seo_url') and ! preg_match('/\/admin\//', $this->output)) {

после

if ($registry->get('config')->get('config_seo_url'))

и потом не забыть "закрыть"

}

Надіслати
Поділитися на інших сайтах


а как оно должно работать?его где-нибудь включать нужно?

вроде закинул , модуь нигде не появился , ссылкам псевдоним автоматом не прописывает..

файл .htaccess нужно в txt формате оставлять или нет?

он должен так выглядеть?

# SEO URL Settings

RewriteEngine On
RewriteBase /папка с сайтом/

# This will prevent redirect loop for the below three RewriteRule.
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]

# E.g external redirect /index.php?route=common/home to /common/home
# X-Requested-With (http header created by jQuery.load()) prevent this rule from AJAX request E.g Get product/product/review when open product details.
RewriteCond %{HTTP:X-Requested-With} !XMLHttpRequest [NC]
RewriteCond %{QUERY_STRING} ^route=([a-z-_/]+)$ [NC]
RewriteRule ^index\.php %1/? [R=301,L]

# E.g external redirect /index.php?route=product/product&product_id=8 to /product/product?product_id=8
RewriteCond %{HTTP:X-Requested-With} !XMLHttpRequest [NC]
RewriteCond %{QUERY_STRING} ^route=([a-z-_/]+)\&(.*)$ [NC]
RewriteRule ^index\.php %1/?%2 [R=301,L]

# E.g internal redirect /common/home to /index.php?route=common/home
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*)/$|^([^?]*)$ index.php?_route_=$1$2 [L,QSA]
Надіслати
Поділитися на інших сайтах


а как оно должно работать?его где-нибудь включать нужно?

да включить нужно в Настройках на закладке Сервер "Использование SEO-url"

и .htaccess как в примере

файл .htaccess нужно в txt формате оставлять или нет?

у меня без расширения txt

он должен так выглядеть?

у меня такой

Options +FollowSymlinks

# Запретить листинг директорий
Options -Indexes

AddType application/x-httpd-php .phtml
AddHandler application/x-httpd-php .phtml

# Закрыть доступ к файлам шаблонов
<FilesMatch "\.tpl">
Order deny,allow
Deny from all
</FilesMatch>

# Необходимо для ЧПУ.
RewriteEngine On
RewriteBase /

# This will prevent redirect loop for the below three RewriteRule.
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]

# E.g external redirect /index.php?route=common/home to /common/home
# X-Requested-With (http header created by jQuery.load()) prevent this rule from AJAX request E.g Get product/product/review when open product details.
RewriteCond %{HTTP:X-Requested-With} !XMLHttpRequest [NC]
RewriteCond %{QUERY_STRING} ^route=([a-z-_/]+)$ [NC]
RewriteRule ^index\.php %1/? [R=301,L]

# E.g external redirect /index.php?route=product/product&product_id=8 to /product/product?product_id=8
RewriteCond %{HTTP:X-Requested-With} !XMLHttpRequest [NC]
RewriteCond %{QUERY_STRING} ^route=([a-z-_/]+)\&(.*)$ [NC]
RewriteRule ^index\.php %1/?%2 [R=301,L]

# E.g internal redirect /common/home to /index.php?route=common/home
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*)/$|^([^?]*)$ index.php?_route_=$1$2 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*)/$|^([^?]*)$ admin/index.php?_route_=$1$2 [L,QSA]
Надіслати
Поділитися на інших сайтах


да включить нужно в Настройках на закладке Сервер "Использование SEO-url"

и .htaccess как в примере

ну это понятно,я имел ввиду должен ли появится сам модуль в админке разделе дополнения-модули.

как вообще понять что модуль нормально установился?

у меня без расширения txt

у меня впринципи тоже , но пробовал и оставить с тхт,но не помогло.

Скорее всего проблема у меня в самом тексте фала htacces.

Пока поставил вот этот модуль,он нормально интегрируется в админку и генерирует псевдонимы без цифр.Единственный минус он перезаписывает уже существующие псевдонимы.

https://opencartforum.com/topic/2175-помогите-немного-переделать-модуль-auto-seo-v04/

А ваш модуль тоже перезаписывает все псевдонимы или просто добавляет туда где их нет?

Надіслати
Поділитися на інших сайтах


Всё сделал как написано. URL-ы стали заметно красивее. Единственно что не нравится знак вопроса в конце названия url, например, http://site.ru/common/home?

Что нужно прописать и где, чтобы убрать эти вопросы? Подозреваю, что .htaccess требует правок...

Надіслати
Поділитися на інших сайтах


Вот на сайте, который в качестве примера рассматривается здесь, такая же история: http://www.kay-i-gerda.ru/common/home?

чтобы сделать путь site.com на главную и путь который ведет с логотипа на главную в файле шаблоне header.tpl замените $home на $base мне это помогло,хотя у меня вопросов изначально в конце не было,а как на страницах аккаунта убрать этот вопрос не знаю

Надіслати
Поділитися на інших сайтах


Теперь вообще не могу попасть в админку, выкидывает ошибку.

Подскажите

-if ($registry->get('config')->get('config_seo_url')) {
+if ($registry->get('config')->get('config_seo_url') and ! preg_match('/\/admin\//', $this->output)) {
в какой именно файл прописывать?

Разобрался, в файл response.php.

Надіслати
Поділитися на інших сайтах


  • 1 month later...

Всё сделал как написано. URL-ы стали заметно красивее. Единственно что не нравится знак вопроса в конце названия url, например, http://site.ru/common/home?

Что нужно прописать и где, чтобы убрать эти вопросы? Подозреваю, что .htaccess требует правок...

Вот на сайте, который в качестве примера рассматривается здесь, такая же история: http://www.kay-i-gerda.ru/common/home?

Вопросы в осле и мазиле, в опере нету. Чтоб осел с мазилой не рисовали вопросы, в файле response.php заменить следущую строку:

$ouput = preg_replace('/index\.php\?route=([-a-z0-9_.\/]*+)(?:(\&|\&)([-a-z0-9+&@\/%=_.] +))?/i', '${1}?${3}', $this->output);

на:

$ouput = preg_replace('/index\.php\?route=([-a-z0-9_.\/]*+)(?:(\&|\&)([-a-z0-9+&@\/%=_.] +))?/i', '${1}${3}', $this->output);
Надіслати
Поділитися на інших сайтах


  • 3 weeks later...
  • 3 weeks later...

Всё сделал как написано. URL-ы стали заметно красивее. Единственно что не нравится знак вопроса в конце названия url, например, http://site.ru/common/home?

Что нужно прописать и где, чтобы убрать эти вопросы? Подозреваю, что .htaccess требует правок...

Нужно дописать в .htaccess

RewriteCond %{QUERY_STRING} ^route=common/home$

RewriteRule ^index\.php$ http://www.yoursite.com? [R=301,L]

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.