Как сделать редирект (301, 302). Общая тема

S
На сайте с 30.09.2016
Offline
469
#821
mazafaka5:
А так, без !on 500 Server error.

Естественно. Директива же неправильная.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
A
На сайте с 15.03.2018
Offline
6
#822

При попытке зайти на поддомен формата msk.sitename.ru редиректит 301 на основной домен.

Подскажите, какая часть в файле это может делать?

Options -Indexes

ErrorDocument 404 /404.php

php_value mbstring.internal_encoding UTF-8

php_value mbstring.func_overload 2

php_value max_input_vars 10000

php_value pcre.recursion_limit 1000

<IfModule mod_php5.c>

php_flag session.use_trans_sid off

php_value display_errors 1

php_value mbstring.internal_encoding UTF-8

</IfModule>

<IfModule mod_rewrite.c>

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.sitename\.ru$ [NC]

RewriteRule ^(.*)$ https://sitename.ru/$1 [R=301,L]

</IfModule>

RewriteCond %{REQUEST_URI} ^/$

RewriteCond %{QUERY_STRING} ^p=[0-9]+$

RewriteRule ^ /? [R=301,L]

RewriteCond %{REQUEST_URI} ^/$

RewriteCond %{QUERY_STRING} ^attachment_id=[0-9]+$

RewriteRule ^ /? [R=301,L]

RewriteEngine on

RewriteCond %{HTTP:HTTPS} !=on [NC]

RewriteRule ^(.*)$ https://sitename.ru/$1 [R=301,L]

SetEnvIf X-Forwarded-Proto https HTTPS=on

<IfModule mod_rewrite.c>

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-l

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$

RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]

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

</IfModule>

S
На сайте с 30.09.2016
Offline
469
#823

Abernutio, ну вот зачем Вы сюда выложили эту простыню? Вы же про субдомен спрашивали.

D7
На сайте с 09.08.2018
Offline
0
#824

Здравствуйте!

Ситуация следующая

Был сайт и форум на битриксе. Недавно выполнена конвертация форума и сайта из битрикса в вордпресс (пока на тестовом сайте). Плагин нового форума на вордпрессе поддерживает только такую форму url - /forum/forum9/topic14767/ со слешем в конце. Проблема в том, что прежний сайт и форум имели такой вид articles/post.php и /forum/forum9/topic14767.php

Таким образом, требуется прописать правила в htaccess чтобы был корректный 301 редирект с /forum/forum9/topic14767.php на /forum/forum9/topic14767/ и страницы сайта тоже имели вид (ранее) articles/post.php а нужно articles/post/ . То есть убрать php и добавить слеш.

Я справился с заданием, частично, редирект происходит, но не работают все и остальные файлы с расширением .php включая wp-comments-post.php, директория wp-admin с php файлами и тд. Кроме того, стандартные правила в файле в htaccess для вордпресс, что ниже выложены перестают работать. Не хватает знаний для решения вопроса и корректного редиректа.

Помогите, пожалуйста, бесплатно или платно.

# BEGIN WordPress

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

A
На сайте с 15.03.2018
Offline
6
#825
Sitealert:
Abernutio, ну вот зачем Вы сюда выложили эту простыню? Вы же про субдомен спрашивали.

Субдомен направлен на ту же папку на хостинге

Точнее проблема в куске, который редиректит на https

RewriteEngine on

RewriteCond %{HTTP:HTTPS} !=on [NC]

RewriteRule ^(.*)$ https://site-name/$1 [R=301,L]

SetEnvIf X-Forwarded-Proto https HTTPS=on

Как прописать исключение для поддоменов, чтобы они остались по http?

M7
На сайте с 13.08.2018
Offline
0
#826

Добрый день!

Прошу помощи в следующем вопросе.

При обращении к странице сайта https://site.ru/bitrix/tools/sale/discount_reindex.php?lang=ru&bxsender=core_window_cadmindialog у меня на сервере происходит редиркет на страницу https://site.ru/bitrix/tools/sale/discount_re.

Вижу что срабатывает правило и из URL вырезается index.php

Как можно добавить исключение правила для этой страницы, чтобы можно было на нее перейти?

Вот мой .htaccess:

Options -Indexes

ErrorDocument 404 /404.php

<IfModule mod_php7.c>

php_flag session.use_trans_sid off

#php_value display_errors 1

php_value mbstring.func_overload 2

php_value mbstring.internal_encoding UTF-8

</IfModule>

<IfModule mod_rewrite.c>

Options +FollowSymLinks

RewriteEngine On

#add /

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]

RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

#del //

RewriteCond %{THE_REQUEST} //

RewriteRule .* /$0 [R=301,L]

# _

RewriteCond %{REQUEST_URI} !^/bitrix/(.*)$

RewriteCond %{REQUEST_URI} !^/ajax/(.*)$

RewriteRule ^(.+)(\s|_)(.+)$ /$1-$3 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-l

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$

RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]

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

</IfModule>

<IfModule mod_dir.c>

DirectoryIndex index.php index.html

</IfModule>

<IfModule mod_expires.c>

ExpiresActive on

ExpiresByType image/jpeg "access plus 3 day"

ExpiresByType image/gif "access plus 3 day"

ExpiresByType image/png "access plus 3 day"

ExpiresByType text/css "access plus 3 day"

ExpiresByType application/javascript "access plus 3 day"

</IfModule>

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]

RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]

RewriteCond %{THE_REQUEST} /(.*)index.php.*$

RewriteCond %{THE_REQUEST} !bitrix/admin/

RewriteRule .* /%1 [R=301,L]

Заранее спасибо!

J
На сайте с 20.02.2014
Offline
120
jkm
#827
Mario79:

RewriteCond %{THE_REQUEST} /(.*)index.php.*$
RewriteCond %{THE_REQUEST} !bitrix/admin/
RewriteRule .* /%1 [R=301,L]

Этот фрагмент можно исправить так:

RewriteCond %{THE_REQUEST} ^\S+\s+((?>/[^?/]+)*?/)index\.php

RewriteCond %{THE_REQUEST} !bitrix/admin/
RewriteRule .* %1 [R=301,L]


---------- Добавлено 14.08.2018 в 00:29 ----------

Abernutio:

RewriteCond %{HTTP:HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://sitename.ru/$1 [R=301,L]

Сверху добавить проверку, что это основной домен:

RewriteCond %{HTTP_HOST} ^(www\.)?sitename\.ru$ [NC]


---------- Добавлено 14.08.2018 в 00:47 ----------

Doc77:

Таким образом, требуется прописать правила в htaccess чтобы был корректный 301 редирект с /forum/forum9/topic14767.php на /forum/forum9/topic14767/ и страницы сайта тоже имели вид (ранее) articles/post.php а нужно articles/post/ . То есть убрать php и добавить слеш.

RewriteRule ^((?:forum|articles)/.+)\.php /$1/ [R=301,L]

Добавлять выше остальных правил.

G1
На сайте с 06.08.2010
Offline
196
#828

Всем привет. Есть сайт у которого множество поддоменов, на основном домене тоже сайт, на поддоменах соответственно автономные сайты. Нужно чтобы и с основного домена и с поддоменов перекидывало на страницу с https:// и без www. Даже при обращении на www должно перекидывать на https:// и без www.

Вот эта инструкция работаем без учета www:

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

Как в нем учесть и www ?

J
На сайте с 20.02.2014
Offline
120
jkm
#829

RewriteEngine On

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+) [NC]
RewriteRule (.*) https://%1%{REQUEST_URI} [R=301,L]
A
На сайте с 15.03.2018
Offline
6
#830
jkm:
Этот фрагмент можно исправить так:
RewriteCond %{THE_REQUEST} ^\S+\s+((?>/[^?/]+)*?/)index\.php
RewriteCond %{THE_REQUEST} !bitrix/admin/
RewriteRule .* %1 [R=301,L]


---------- Добавлено 14.08.2018 в 00:29 ----------


Сверху добавить проверку, что это основной домен:
RewriteCond %{HTTP_HOST} ^(www\.)?sitename\.ru$ [NC]


---------- Добавлено 14.08.2018 в 00:47 ----------


RewriteRule ^((?:forum|articles)/.+)\.php /$1/ [R=301,L]

Добавлять выше остальных правил.

Спасибо!

Подскажите, пожалуйста, как сделать переадресацию на http при переходе на субдомен?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий