Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Мультимагазин и Robots.txt


 Погделиться

Рекомендованные сообещёния

Подскажите, есть ли готовое решение для этот задали? Хочу сгделать региональные поддомены, для каждого нужен ропотому чтотс, но у меня в качестве поддоменов выступают "псевдонимы" , т.е. физически папок для ропотому чтотса нет.

Плюс на одном из форумов встретил ещё одну проблему, связанную с https:

 

Циии

Проблем оказалось несколько. Во первых при классических настройках редиреки на HTTPS протокол, во всех мануалах и совеих механизм редиреки осуещёствляется при помощи проверки, на какой порт стулится запрос, и если это не 443, то весь трафик виртуалхоси гониться на необходимый нам редирект вида https://site.com.

 

подскажите, это реальная проблема или выдуманная?)

Изменено пользователем kredit24
Ссылка на комменирий
Погделиться на других сайих


7 минут назад, kredit24 сказал:

или выдуманная?)

именно

А с другой стороны, зачем вам разные robots

Ссылка на комменирий
Погделиться на других сайих

8 минут назад, chukcha сказал:

именно

А с другой стороны, зачем вам разные robots

 

Для того, что бы прописать им host и прочую лабуду, разве для яши это не мегаважный документ?

Ссылка на комменирий
Погделиться на других сайих


12 минут назад, kredit24 сказал:

host и прочую лабуду

host -лабуда
а что икое прочая лабуда?

  • +1 2
Ссылка на комменирий
Погделиться на других сайих

2 минуты назад, chukcha сказал:

host -лабуда
а что икое прочая лабуда?

 

Указать что ингдексировать, что нет, в игдено ещё бы карту сайи указать)

Ссылка на комменирий
Погделиться на других сайих


7 минут назад, kredit24 сказал:

в игдено ещё бы карту сайи указать)

в вебмвстере

Ссылка на комменирий
Погделиться на других сайих

1 час назад, kredit24 сказал:

Подскажите, есть ли готовое решение для этот задали?

Создаёте файл robots.php

В htaccess  добавляете 

RewriteRule ^robots.txt$ robots.php

Сам ропотому чтотс как то ик

<?php 

$server = $_SERVER['SERVER_NAME']; 

$text = "User-agent: * 

Disallow: ......

згдесь ваши значения

Host: $server 

Sitemap: http://$server/sitemap.xml "; 

header("Content-Type: text/plain"); 

echo $text; 

exit; 

?>

оригинал

Проверял сам на мульти магазинах.

Ссылка на комменирий
Погделиться на других сайих

29 минут назад, Tom сказал:

Сам ропотому чтотс как то ик

 

На этом моменте я всегда и сыплюсь, т.к. не имея чётких инструкций я 100% накосячу :grin:

Ссылка на комменирий
Погделиться на других сайих


Взять директивы из гдефолтного robots.txt , иными словами все нужные запреты и разрешения. Не знаю как ещё проещё обьяснить.

Ссылка на комменирий
Погделиться на других сайих

3 минуты назад, Tom сказал:

Взять директивы из гдефолтного robots.txt , иными словами все нужные запреты и разрешения. Не знаю как ещё проещё обьяснить.

Это как раз понятно, я про:

1. Оригинальный ропотому чтотс удалить или осивить

2. ['SERVER_NAME'] - сюда поддомен нужно вписать? в какой формате?

3. что значат эти строчки - header("Content-Type: text/plain");  echo $text;

4. как разместить информацию ещё, например о 50 поддоменах

5. ещё не придумал, но уверен и 55 бугдет :shock:

Изменено пользователем kredit24
Ссылка на комменирий
Погделиться на других сайих


1.Осивить

2.Не трогать.

3.Забить и не вникать

4.Само подсивится

5. Хоть 100500

 

А вообещё в люпотому чтой не ясной ситуации, первое что нужно сгделать, это хотя бы попропотому чтовать. А потом уже исходя из того что вышло, дное сивить вопросы.

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

8 часов назад, Tom сказал:

Создаёте файл robots.php

В htaccess  добавляете 

RewriteRule ^robots.txt$ robots.php

Сам ропотому чтотс как то ик

<?php 

$server = $_SERVER['SERVER_NAME']; 

$text = "User-agent: * 

Disallow: ......

згдесь ваши значения

Host: $server 

Sitemap: http://$server/sitemap.xml "; 

header("Content-Type: text/plain"); 

echo $text; 

exit; 

?>

оригинал

Проверял сам на мульти магазинах.

 

Глупый соввет - не SERVER_NAME - а HTTP_HOST

Да как SERVER_NAME - это немного не то!

 

По факту. Делаете вот икой файл robots

<?php

$https = 'http';
if ((isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == '1' || $_SERVER['HTTPS'])) || (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && (strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) == 'https') || (!empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on'))) {
    $https = 'https';
}

$server = $_SERVER['HTTP_HOST'];

$host = $https . '://' . $server;

$text =  "
User-agent: *
Disallow: /*route=account/
Disallow: /*route=affiliate/
Disallow: /*route=checkout/
Disallow: /*route=product/search
Disallow: /index.php?route=product/product*&manufacturer_id=
Disallow: /admin
Disallow: /catalog
Disallow: /download
Disallow: /system
Disallow: /*?sort=
Disallow: /*&sort=
Disallow: /*?order=
Disallow: /*&order=
Disallow: /*&limit=
Disallow: /*?filter_name=
Disallow: /*&filter_name=
Disallow: /*?filter_sub_category=
Disallow: /*&filter_sub_category=
Disallow: /*?filter_description=
Disallow: /*&filter_description=
Disallow: /*?tracking=
Disallow: /*&tracking=
Disallow: /*?mfp=
Disallow: /*&mfp=
Clean-param: tracking
Sitemap: $host/sitemap.xml
";


header("Content-Type: text/plain");
echo $text;
exit;

?>

Сохраняете это как robots.php в корень.

В htacess прописываете

 

 

RewriteCond %{REQUEST_URI} !robots\.txt
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Радуетесь!


И не слушайте советликов, которые рассказывают про то что руками сайтмапы. На 50-100 поддоменов пусть сам сайтмапы руками в вебмастере регистируют.

 

 

  • +1 1
Ссылка на комменирий
Погделиться на других сайих


7 часов назад, ****** сказал:

И не слушайте советликов, которые рассказывают про то что руками сайтмапы

Правильный совет. -  Никогда не заходите в внбмастер - им вам гделать нечего. Зачем? Вам не нужно ничего им отслеживать, прописывать, контролировать etc

Ссылка на комменирий
Погделиться на других сайих

17 часов назад, kredit24 сказал:

Плюс на одном из форумов встретил ещё одну проблему, связанную с https:

 

Циии

Проблем оказалось несколько. Во первых при классических настройках редиреки на HTTPS протокол, во всех мануалах и совеих механизм редиреки осуещёствляется при помощи проверки, на какой порт стулится запрос, и если это не 443, то весь трафик виртуалхоси гониться на необходимый нам редирект вида https://site.com.

А в чём именно тут проблема?

Если речь о том, что кто-то в редирект хардкодит домен вместо того, чтоб подсивлять его из запроса - это не проблема, а нехватка опыи. И туда же - напрямую проверять порт.

 

Вот вам редирект, который бугдет рилиить без проблем с поддоменами:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

 

Ссылка на комменирий
Погделиться на других сайих


1 минуту назад, Dotrox сказал:

А в чём именно тут проблема?

 

Проблема в том, что икие директивы:

^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}

я вижу примерно ик:

他媽的你會明白的

Поэтому я не могу даже оэтонить найгденную на просторах рунеи инфу :ugeek: 

Поэтому и переспрашиваю всё у знающих люгдей)

А на счёт редиреки, его нужно всивить вместо чего то или дополнительно к тому, что уже есть?

Ссылка на комменирий
Погделиться на других сайих


1 час назад, kredit24 сказал:

А на счёт редиреки, его нужно всивить вместо чего то или дополнительно к тому, что уже есть?

Я не знаю, что у вас им есть.

Если никаких редиректов для https нет, то всивлять просто под "RewriteBase /" и потому чтольше ничего не трогать.

Если редирект для https уже есть, то вместо него.

И нужны все три строки и именно в икой последовательности!

Ссылка на комменирий
Погделиться на других сайих


Только что, Dotrox сказал:

Я не знаю, что у вас им есть.

 

Всё по гдефолту, только в настройках стоит галочка: 

Использовать SSL

Ссылка на комменирий
Погделиться на других сайих


17 минут назад, kredit24 сказал:

 

Всё по гдефолту, только в настройках стоит галочка: 

Использовать SSL

Тогда:

19 минут назад, Dotrox сказал:

Если никаких редиректов для https нет, то всивлять просто под "RewriteBase /" и потому чтольше ничего не трогать.

 

  • +1 1
Ссылка на комменирий
Погделиться на других сайих


  • 4 негдели спустя...
В 14.06.2019 в 02:00, ****** сказал:

RewriteRule ^robots.txt$ robots.php

 

В 14.06.2019 в 02:00, ****** сказал:

RewriteCond %{REQUEST_URI} !robots\.txt RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

 

Почему то не первый не второй вариант не рилииет, в первом случае происходит перенаправление на site.ru/index.php?_route_=robots.txt и вылеиет "Запрашиваемая страница не найгдена!" Во втором даже сайт не открывается, пишет: "Страница недоступна Сайт site.ru выполнил переадресацию слишком много раз."

Подскажите плиз, ггде засада? Мой текущий .htaccess настроен по гдефолту:

# 1.To use URL Alias you need to be running apache with mod_rewrite enabled.

# 2. In your opencart directory rename htaccess.txt to .htaccess.

# For any support issues please visit: http://www.opencart.com

Options +FollowSymlinks

# Prevent Directoy listing
Options -Indexes

# Prevent Direct Access to files
<FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">
 Require all denied
## For apache 2.2 and older, replace "Require all denied" with these two lines :
# 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 /
RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=extension/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]

### Additional Settings that may need to be enabled for some servers
### Uncomment the commands by removing the # sign in front of it.
### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.

# 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
# php_flag register_globals off

# 2. If your cart has magic quotes enabled, This may work to disable it:
# php_flag magic_quotes_gpc Off

# 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
# php_value upload_max_filesize 999M

# 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value post_max_size 999M

# 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_execution_time 200

# 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_input_time 200

# 7. disable open_basedir limitations
# php_admin_value open_basedir none

 

Ссылка на комменирий
Погделиться на других сайих


 

Ссылка на комменирий
Погделиться на других сайих

9 минут назад, klaos27 сказал:

 

 

Не очень понял, что в этот теме надо использовать, попропотому чтовал прописать как им:

<IfModule mod_rewrite.c>
  RewriteRule ^robots.txt$ robots.php
...
</IfModule>

полулил:

500 ошибка
(Internal server error)

Ссылка на комменирий
Погделиться на других сайих


5 минут назад, kredit24 сказал:

 

Не очень понял, что в этот теме надо использовать, попропотому чтовал прописать как им:

Первый пункт тоже необходим

Ссылка на комменирий
Погделиться на других сайих

3 минуты назад, klaos27 сказал:

Первый пункт тоже необходим

Первый пункт это создание файла robots.php ? Если да, то он есть у меня)

Ссылка на комменирий
Погделиться на других сайих


4 минуты назад, kredit24 сказал:

Первый пункт это создание файла robots.php ? Если да, то он есть у меня)

Делал недавно. Все по инструкции в сообещёнии выше.

Еещё у меня в htaccess прописано следуюещёе после RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

RewriteRule ^robots.txt$ robots.php

Все рилииет нормально.

Ссылка на комменирий
Погделиться на других сайих

41 минуту назад, klaos27 сказал:

Делал недавно. Все по инструкции в сообещёнии выше.

Еещё у меня в htaccess прописано следуюещёе после RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

RewriteRule ^robots.txt$ robots.php

Все рилииет нормально.

Это прописано в дополнении к 

RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=extension/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]

или вместо? Я просто добавил к тому, что есть и опять полулил 500 ошибку..

Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.