Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   ЧПУ в htacces нужно ли делать редиректы со старых урл, если дублируют страницу? (https://javascript.ru/forum/server/75876-chpu-v-htacces-nuzhno-li-delat-redirekty-so-starykh-url-esli-dubliruyut-stranicu.html)

Nexus 14.11.2018 13:04

На счет переадресаций не знаю.
https://htaccess.madewithlove.be?sha...b-067a80a8babd

upd. если все равно редиректит, то можно так еще попробовать:
RewriteEngine on

RewriteCond %{QUERY_STRING} !^__no-redirect$ [NC]
RewriteCond %{QUERY_STRING} ^page=(.*)$ [NC]
RewriteRule ^(.*?)\/?$ "$1/%1?" [R=301,L]

RewriteRule ^(.+?)\/?$ ?__no-redirect&page=$1 [L]

https://htaccess.madewithlove.be?sha...7-c940adca1c17

Zhenyaxxxx 14.11.2018 13:20

Действительно в адресной строке происходит переадресация, но сайт вырубается, после написания вашего кода..... вот такой htaccess:

AddDefaultCharset UTF-8

# переход на версию без www:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.ensy\.com.ua$ [NC]
RewriteCond %{REQUEST_URI} !^/robots.*
RewriteRule ^(.*)$ https://ensy.com.ua/$1 [R=301,L]

# переадресация с index.php на /:
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ https://ensy.com.ua/ [R=301,L]

# переадресация с http на https:
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://ensy.com.ua/$1 [R=301,L]


# сжатие text, html, javascript, css, xml:
<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
</ifModule>

# ЧПУ
RewriteEngine on
RewriteRule ^([^/.]+)/?$ ?page=$1 [L]


# 404
RewriteEngine on
ErrorDocument 404 https://ensy.com.ua/block/404.php

Zhenyaxxxx 14.11.2018 13:32

RewriteEngine on

RewriteCond %{QUERY_STRING} !^__no-redirect$ [NC]
RewriteCond %{QUERY_STRING} ^page=(.*)$ [NC]
RewriteRule ^(.*?)\/?$ "$1/%1?" [R=301,L]

RewriteRule ^(.+?)\/?$ ?__no-redirect&page=$1 [L]


а так 500 ошибку выдает...

Zhenyaxxxx 15.11.2018 18:35

Ничего не получается... что делать....

laimas 16.11.2018 05:00

Цитата:

Сообщение от Zhenyaxxxx
что делать....

Выполнить get_headers извне чтобы понять какую карусель вы устраиваете - "# переадресация с index.php на /:", то есть по вашему https://ensy.com.ua/, это будет запрос не https://ensy.com.ua/index.php?

Zhenyaxxxx 16.11.2018 09:57

Подскажите, пожалуйста, как это сделать ? как выполнить get_headers извне..

Nexus 16.11.2018 10:04

Zhenyaxxxx,
Цитата:

Сообщение от Zhenyaxxxx
как выполнить get_headers извне..

https://www.webconfs.com/http-header-check.php
Ну или ищете другой сервер и выполняйте на нем функцию get_headers.
Если на вашем сервере есть хотя бы 1 страница (если нет, то сделать такую, я думаю, не сложно), которая открывается, то можете с этой страницы отправить запрос на свой сервер используя названную функцию.

laimas 16.11.2018 10:33

Цитата:

Сообщение от Zhenyaxxxx
как это сделать ?

С локального сервера сделать запрос на тестируемый сайт, который тоже в общем-то должен быть на время отладки на локальном сервере, но это не важно:

print_r(get_headers(url запроса, 1));

Zhenyaxxxx 16.11.2018 10:34

Когда ввожу в проверку урл https://ensy.com.ua/index.php
то показывает такой ответ:

HTTP/1.1 301 Moved Permanently => 
Server => nginx
Date => Fri, 16 Nov 2018 07:43:03 GMT
Content-Type => text/html; charset=iso-8859-1
Content-Length => 228
Connection => close
Location => https://ensy.com.ua/
Front-End-Https => on
Strict-Transport-Security => max-age=300;


ПРоисходит 301 редирект на урл без index.... Что это может означать...?

Nexus 16.11.2018 10:46

Цитата:

Сообщение от Zhenyaxxxx
ПРоисходит 301 редирект на урл без index.... Что это может означать...?

То что пользователя перенаправит на адрес без "index.php".
Ваш кэп.

Теперь смотрите какие заголовки вернет запрос на адрес "https://ensy.com.ua/" (спойлер: редиректа нет).
Если на сайте у вас ранее был редирект со страницы "https://ensy.com.ua/" на "https://ensy.com.ua/index.php", то стоит очистить dns cache браузера или попробовать зайти на ваш сайт с другого браузера.


Часовой пояс GMT +3, время: 06:45.