Вопрос по .htaccess

Автор gorbi, 18 июля 2020, 08:40:35

« назад - далее »

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

gorbi

Вопрос в следующем. У меня есть сайт, внутри форум и блог на вордпресс

Структура .htaccess для склейки www и для https следующая:

.htaccess в верхнем корне

# Редирект https www на https

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

# Редирект http на https
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://g-news.com.ua%{REQUEST_URI} [R=301,L]

.htaccess в корне форума

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://g-news.com.ua/forum_smf/$1 [R,L]

.htaccess в корне блога на вордпрессе

Переадресации нет и всё работает

Вопрос - где должна быть эта склейка?

gorbi

Ещё уточнение - поддомены не использую

Ulibka

Отличная статья по htaccess она мне в свое время сильно помогла:
https://habr.com/ru/company/sprinthost/blog/129560/

Я не понял как у Вас устроена структура каталогов и чего Вы хотели добиться ?

gorbi

Структура простая - есть сайт и внутри в папке лежит форум. Не получается настроить склейку с www на ссылки без www

Ulibka

1. Вы точно уверены что у Вас стоит apache и впереди нет nginx ?

2.  Убедитесь, что в конфигурационном файле Apache httpd.conf активирован mod_rewrite. То есть, раскомментирована соответствующая строка:

LoadModule rewrite_module modules/mod_rewrite.so


3.  mod_rewrite - точно рабочий ?

Попробуйте например ровно одно правило:
RewriteEngine On
RewriteRule .* /index22.html [L]
Переадресовать все запросы на index22.html
index22.html - располагается в корневой папке сайта


4. Окончательный запрос:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ https://www.g-news.com.ua/$1 [L,R=301]

RewriteCond - проверяет условия

HTTP_HOST - это адрес сервера
В запросе
https://www.g-news.com.ua/index.php?topic=85265.msg1673190#new
HTTP_HOST = www.g-news.com.ua

В RewriteRule  попадает строка index.php?topic=85265.msg1673190#new

gorbi

Хостер решил мою задачу вот такой комбинацией


RewriteCond %{HTTPS} =off OR
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ https://g-news.com.ua/forum_smf/$1 [R=301,L]