http://site.ru/page
page
(да это особенность работы в .htaccess, а в контексте VirtualHost был бы слеш в начале /page
).page
совпадает с шаблоном ^([^/]{0,7})$
. Этот шаблон означает что строка не более семи любых символов кроме /
ErrorDocument 403 /my404.php
<?php
http_response_code(404);
?>
<h1>404 Not Found </h1>
[OR]
RewriteCond %{HTTPS};%{HTTP_HOST};%{THE_REQUEST} !^on;(?!www\.)[^;]+;(?!.*//) [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.|)(.+) [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
^on;(?!www\.)[^;]+;(?!.*//)
совпадёт только когда в %{HTTPS} будет "on" и %{HTTP_HOST} без www и %{THE_REQUEST} без повторяющихся слешей.^([0-9]+)_(.*)/$
, но страницы пагинации тоже совдают с этим шаблоном и правило перенаправляло на list.php?cat=$1RewriteCond %{THE_REQUEST} // [OR]
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.|)(.+) [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
cond1 [OR]
cond2 [OR]
cond3 [NC]
cond4 [NC]
if ( (cond1 OR cond2 OR cond3) AND cond4 ) {
RewriteCond %{HTTP_HOST} ^(?:www\.|)(.+) [NC]
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