echo "<pre>", print_r($_SERVER, true), "</pre>";
ErrorDocument 401 /401.php
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
AuthType Basic
AuthName "Пожалуйста, авторизуйтесь на сайте"
AuthUserFile .../site.ru/.htpasswd
require valid-user
<?php
if ($_SERVER['SERVER_PORT'] != '443') {
header('Location: https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'], true, 301);
exit;
}
Москва
это %D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0
Санкт-Петербург
это %D0%A1%D0%B0%D0%BD%D0%BA%D1%82-%D0%9F%D0%B5%D1%82%D0%B5%D1%80%D0%B1%D1%83%D1%80%D0%B3
\%
RewriteCond %{HTTP_COOKIE} (?:^|;\s*)city=([^;]+)
RewriteCond "%1 \%D0\%9C\%D0\%BE\%D1\%81\%D0\%BA\%D0\%B2\%D0\%B0=https://ya.ru/ \%D0\%A1\%D0\%B0\%D0\%BD\%D0\%BA\%D1\%82-\%D0\%9F\%D0\%B5\%D1\%82\%D0\%B5\%D1\%80\%D0\%B1\%D1\%83\%D1\%80\%D0\%B3=https://www.google.ru/" "^(\S+) .*?\1=(\S+)" [NC]
RewriteRule ^ %2 [R=301,L]
RewriteCond expr "%{HTTP_COOKIE} =~ /(?:^|;\s*)city=([^;]+)/ && %{unescape:$1 Москва=https://ya.ru Санкт-Петербург=https://www.google.ru/} =~ /^(\S+) .*?\1=(\S+)/i"
RewriteRule ^ %2 [R=301,L]
%xx
, а потом ещё и экранировать символ %
нужно весь url заключить в кавычки и использовать UTF-8 без BOM.RewriteCond %{HTTP_HOST} ^redir\.nicebot\.ru$
RewriteRule ^(.*)$ "https://api.whatsapp.com/send?phone=79999074426&text=Покажи, как работает помощник в WhatsApp/$1" [R=302,L]
page
без /
. ^(www.|)(.+[^\.])\.domainname\.com
совпадёт не только italy.domainname.com, но и www.domainname.com.?+
исключает совпадение с www.domainname.com/index.php
, /robots.txt
, /sitemap.xml
, /favicon.ico
или к другим файлам? RewriteCond %{HTTP_COOKIE} REG=
RewriteRule ^ http://example.com/reg [R=302,L]
https://api.whatsapp.com/send?phone=79999074426&text=Покажи, как работает помошник в WhatsApp
RewriteEngine on
RewriteRule ^page$ "https://api.whatsapp.com/send?phone=79999074426&text=Покажи, как работает помошник в WhatsApp" [R=301,L]
Options +FollowSymLinks
DirectorySlash Off
RewriteEngine On
RewriteRule ^blog/$ /blog [R=301,L]
RewriteRule ^blog$ /blog/index.php [L]
# 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>
# END WordPress
Тут четыре условия RewriteCond.
Это эквивалентно такой конструкции:
if ( (cond1 OR cond2 OR cond3) AND cond4 ) {
Т.е. четвёртый обязательный. Он нужен чтобы в переменной %1 всегда получать домен без www.
RewriteCond %{HTTP_HOST} ^(?:www\.|)(.+) [NC]
Так что нет нужды писать целую простыню правил.
Достаточно одного RewriteRule и нескольких RewriteCond.