jkm

Рейтинг
120
Регистрация
20.02.2014
lcc7:
без www - на www ни один из трех способов не подходит

А если ставить редирект в начало файла?

Как настраивать редирект на https обычно можно найти в справке на сайте своего хостера.

RewriteCond %{HTTPS} !=on [OR]

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

В зависимости от настроек сервера вместо RewriteCond %{HTTPS} !=on могут быть другие варианты проверки https.

RewriteCond %{ENV:HTTPS} !on

RewriteCond %{HTTP:X-Forwarded-Proto} !https


Options +FollowSymLinks

AddDefaultCharset UTF-8

#Обработка php в html, htm
AddType application/x-httpd-php .html .htm

AddType text/x-component .htc

RewriteEngine on
RewriteBase /

RewriteCond %{THE_REQUEST} ([^?\s]*?)(/index)?\.html
RewriteRule (.*) https://mysite.ru%1/ [R=301,L]

# HTTPS
SetEnvIf X-Forwarded-Proto https SERVER_PORT=443
SetEnvIf X-Forwarded-Proto https HTTPS=on

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

RewriteCond %{DOCUMENT_ROOT}/$1.html -f
RewriteRule ^(.+)/$ $1.html [L]

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

Ловит любые домены != www.site.ru т.е. сработает и для domain.com

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

Тут совпадут только поддомены .site.ru

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

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

Или

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

RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
arhinastya:
Остальные сделаны с помощью директивы "Redirect 301"

Тогда добавляй в конец правило:

RedirectMatch 301 ^ https://www.new-site.ru/

А вот это убери

RewriteCond %{REQUEST_URI} (.*)
RewriteRule ^(.*)$ https://www.new-site.ru/ [L,R=301]

Redirect и RedirectMatch это директивы mod_alias, а RewriteRule это mod_rewrite.

И как ни переставляй mod_rewrite выполнит свои правила раньше чем mod_alias.

$text='

<div class="content">
<div class="first">111</div>
<div class="second">
<p>222</p>
<div class="third">333</div>
</div>
<p>bla</p>
</div>
<p>text after</p>';
$pattern = '~<div class="content">((?:[^<]|(?!</?div).|<div(?1)</div>)*+)~si';
preg_match_all($pattern, $text, $out);

'~<a [^>]*href="https?://(?:www\.|)mysite\.com[^>]*>(.*?)</a>~is'

https://regex101.com/r/mPuuA4/1

<a [^>]*href="https?://(?:www\.|)mysite\.com[^>]*>(.*?)</a>
alexverem:
/home

с конечным слешем и без него..

RewriteRule ^home/?$ - [F]
Всего: 749