При добавление в URL сайта WWW текущая страница сбрасывается на главную

  • 19 Ответов
  • 420 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

tao2en

  • ***
  • 71
  • 0
Собственно выложил сайт на хостинг пару дней назад, решил потихоньку настраивать его..
создал файл .htaccess прописал в самом низу следующий код:

Спойлер
[свернуть]


Задача была выполненна:

1) убрать index.php из url, который появляется при переходе по страницам сайта;
2) сделать редирект главной с index.php в URL на главную без index.php;
3) сделать сайт без WWW главным зеркалом, а с WWW дополнительным с переадресацией на без WWW.
Всё работает, НО:
1) например при переходе по страницам сайта, index.php не появляется, но находясь на другой странице (не главной), например http://мой-сайт.ru/catalog, если я после .ru/ добавлю index.php, то у меня получится 2-е страницы,
 http://мой-сайт.ru/catalog    и    http://мой-сайт.ru/index.php/catalog     и так со всеми страницами. На многих сайтах видел что при добавление index.php в середину URL, ничего не происходит, URL остаётся таким каким был.
2) www.мой-сайт.ru  успешно редиректится на мой-сайт.ru, но опять же находясь на любой другой странице, когда я к ней добавляю www.  у меня текущая страница сбрасывается на главную мой-сайт.ru/. Опять же на других сайтах WWW просто не добавляется и страница остаётся текущей, а не сбрасывается на главную.

Как это фиксится? Серьёзно ли это влияет на продвижение?

*

dmitry_stas

  • ********
  • 9615
  • 929
вы добавили неверный код. поищите верный. или напишу чуть позже, не удобно сейчас.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

SeBun

  • *******
  • 3050
  • 185
  • @SeBun48
Во первых сначала идет RewriteEngine On, потом все остальное. Во вторых - чем не устроил стандартный .htaccess? В корне сайта должен быть htaccess.txt, переименуйте его в .htaccess, в нем править ничего не нужно. В админке в настройках включите ЧПУ. Какой хостер? У некоторых хостеров в панели управления сайтом, там, где выбирается тип php, можно включить перенаправление c www и без оного.
Оказываю услуги по Joomla | Миграция на Joomla 3.x | Администрирование
Ник занят | По личным вопросам не консультирую

*

tao2en

  • ***
  • 71
  • 0
Код я брал с http://joomlaforum.ru/index.php/topic,223542.0.html и делал переименование htaccess.txt на .htaccess, но в нём практически всё закомментировано такими знаками # ##. Код указанный в главном посте, я указывал внизу после всего что было написано в htaccess.txt (.htaccess). Хостер beget. ЧПУ включено, также включил Перенаправление URL.
« Последнее редактирование: 16.10.2016, 01:17:26 от tao2en »

*

tao2en

  • ***
  • 71
  • 0
Вообще вот такой у меня код прописан на данный момент в .htaccess  (красным помечено то, что я добавил).
Спойлер
[свернуть]

*

dmitry_stas

  • ********
  • 9615
  • 929
RewriteEngine On у вас выше уже есть, второй раз не нужно

неоткуда скопировать, пишу по памяти, поэтому может где то ошибся. ссылок предостаточно на это, уже бы нашли давно :)

редирект с www на без www
Код
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

для вариантов http://site.com/index.php/tamtararam вообще можете безусловный редирект делать
Код
RedirectMatch 301 ^/index.php/ http://site.com/
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

tao2en

  • ***
  • 71
  • 0
RewriteEngine On у вас выше уже есть, второй раз не нужно

неоткуда скопировать, пишу по памяти, поэтому может где то ошибся. ссылок предостаточно на это, уже бы нашли давно :)

редирект с www на без www
Код
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

для вариантов http://site.com/index.php/tamtararam вообще можете безусловный редирект делать
Код
RedirectMatch 301 ^/index.php/ http://site.com/

У меня такой код и был указан, только не в том месте, сейчас поправил:
Получилось так (красным то что добавил)
Спойлер
[свернуть]

Собственно вопросы всё-равно остались:

1) Когда я добавляю www находясь на любой странице, например в каталоге, то вместо того чтобы перенаправление было на эту же текущую страницу но без WWW, меня перенаправляет на главную. На других сайтах при такой манипуляции тебя не перекидывает на главную, а просто не получается добавить WWW и ты дальше находишься на той странице где и был. (как тот и другой вариант влияет на продвижение?)
2) при Добавление index.php в URL, опять же находясь на любой странице, происходит переход на главную, на некоторых сайтах при такой манипуляции вылазит ошибка 404, на других просто добавляет в URL индекс.пчп, тоесть получается 2 адреса один с индес.пчп, другой без.. (что правильнее?)

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

*

dmitry_stas

  • ********
  • 9615
  • 929
1. вы не видите разницы между тем, что я написал, и тем что вы?
2. думаю нет разницы, главное что не 200. редирект на главную норм
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

tao2en

  • ***
  • 71
  • 0
1. вы не видите разницы между тем, что я написал, и тем что вы?
2. думаю нет разницы, главное что не 200. редирект на главную норм

1. Разницу вижу, честно говоря подумал что Вы ошиблись, сейчас вставил Ваш код, ничего в нём не менял и не добавляя в него URL моего сайта, теперь работает всё отлично, когда я нахожусь на любой странице моего сайта и добавлю приставку WWW. , то у меня не происходит перехода на главную страницу, как было, а остаётся на текущей и без WWW, чего я и хотел получил. Большое спасибо!!
2. Не уточните что вы имеете ввиду под: "200".

*

AlekVolsk

  • ********
  • 6301
  • 336
2. Не уточните что вы имеете ввиду под: "200".
код ответа сервера, по которому браузер понимает, что дальше делать со страницей, которую от от сервера получит или не получит, 200 - это самый хороший код, он означает, что все не просто хорошо, а лучше не бывает )

*

dmitry_stas

  • ********
  • 9615
  • 929
откровенно говоря SEO не моя сильная сторона, не могу однозначно сказать, что в таком случае правильнее - 301 или 404. может мужик с YouTube и прав, может 404 в этом случае больше подходит. но по личному опыту - абы не 200 :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

ELLE

  • *****
  • 4574
  • 867
Цитировать
.301 вообще опасен.. и нужен он только для редиректа с одного домена на другой. 

Так сайт с WWW и без - и есть по сути разные сайты. Вы по сути с поддомена на домен делаете редирект ;)

*

dmitry_stas

  • ********
  • 9615
  • 929
не, видимо имеется в виду про index.php
Код
RedirectMatch 301 ^/index.php/ http://site.com/
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

ELLE

  • *****
  • 4574
  • 867
А. Дубли нужно склеивать редиректом в нашем случае, а 404 это когда был контент и его удалили навсегда

*

tao2en

  • ***
  • 71
  • 0
А как склеить сайт.ru/index.php/catalog ?
При прописывание
Код
RedirectMatch 301 ^/index.php/ http://сайт.ru/
Получается переадресация всех страниц, где присутствует /index.php, на главную. Как сделать, чтобы была переадресация, например, с сайт.ru/index.php/catalog на сайт.ru/catalog ?
Если не прописывать код выше, то будет две страницы сайт.ru/index.php/catalog и сайт.ru/catalog.

Вот тут кстати видео с YouTube про "вред" редиректа 301 (кому интересно можете ознакомиться)
Спойлер
[свернуть]
« Последнее редактирование: 16.10.2016, 03:56:47 от tao2en »

*

ELLE

  • *****
  • 4574
  • 867
Возможные варианты
а) у вас закешировались редиректы, проверьте ответ через сторонний сервис
б) на бегет частенько подобные проблемы, у них какие то уникальные конфигурации серверов встречаются, что привычные приёмы не работают

*

tao2en

  • ***
  • 71
  • 0
Возможные варианты
а) у вас закешировались редиректы, проверьте ответ через сторонний сервис
б) на бегет частенько подобные проблемы, у них какие то уникальные конфигурации серверов встречаются, что привычные приёмы не работают
Честно говоря не понял что нужно сделать.


*

dmitry_stas

  • ********
  • 9615
  • 929
так и есть, RedirectMatch браузер кеширует. RewriteRule нет
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

neogeek

  • ****
  • 203
  • 18
tao2en, замените .htaccess на вот такой
Код
Options +FollowSymLinks

RewriteEngine On

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

RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]

RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]

RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]

RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})

RewriteRule .* index.php [F]

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

RewriteCond %{REQUEST_URI} !^/index\.php

RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule .* index.php [L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://вашдомен.ru/ [R=301,L]

AddDefaultCharset utf-8

# compress text, HTML, javascript, CSS, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
 
# Or, compress certain file types by extension:
 
SetOutputFilter DEFLATE

<ifModule mod_expires.c>
ExpiresActive On
#по умолчанию кеш в 5 секунд
ExpiresDefault "access plus 2 days"
# Включаем кэширование изображений и Flash на месяц
ExpiresByType image/x-icon "access plus 1 month"
ExpiresByType image/jpeg "access plus 4 weeks"
ExpiresByType image/png "access plus 30 days"
ExpiresByType image/gif "access plus 43829 minutes"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
# Включаем кэширование CSS, javascript и текстовых файлоф на одну неделю
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 604800 seconds"
ExpiresByType application/javascript "access plus 604800 seconds"
ExpiresByType application/x-javascript "access plus 604800 seconds"
# Включаем кэширование HTML и htm файлов на один день
ExpiresByType text/html "access plus 43200 seconds"
# Включаем кэширование XML файлов на десять минут
ExpiresByType application/xhtml+xml "access plus 600 seconds"
</ifModule>
<ifModule mod_headers.c>
<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=604800, private, must-revalidate"
</filesMatch>
<filesMatch "\.(css|js)$">
Header set Cache-Control "max-age=604800, private, must-revalidate"
</filesMatch>
<filesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=604800, public, must-revalidate"
</filesMatch>
<filesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=604800, private, must-revalidate"
</filesMatch>
</ifModule>

<IfModule mod_setenvif.c>
BrowserMatch "MSIE" force-no-vary
BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
</IfModule>
если будет вываливаться ошибка 500, то удалите все строки после AddDefaultCharset utf-8
в моем варианте правильно редиректятся страницы c www на без www (www.site.ru/about -> site.ru/about)
« Последнее редактирование: 16.10.2016, 11:09:16 от neogeek »