RewriteRule ^(pages|confirm|captcha|listing|api|search|account|banlist|cabinet|servers|payment_gateway|admin_[^/]+)(/.*)?$ /monitoring/$0 [L]
RewriteRule ^api/?$ /?module=api [L]
/?module=api
так запрос будет отправлен в корень сайта.?module=api
так запрос останется в /monitoring/.RewriteEngine On
#Вызов страницы 404
ErrorDocument 404 /monitoring/?404
#Динамические страницы
RewriteRule ^pages/([^/]+).htm$ ?module=pages&url=$1 [L]
#Сброс пароля
RewriteRule ^confirm/([^/]+)/$ ?module=password_reset&confirm=$1 [L]
#Каптча
RewriteRule ^captcha/?$ ?module=captcha [L]
#Листинг
RewriteRule ^listing/?$ ?module=listing [L]
#API
RewriteRule ^api/?$ ?module=api [L]
#Поиск
RewriteRule ^search/?$ ?module=search [L]
#Авторизация, регистрация и тд.
RewriteRule ^account/([a-z]+)/?$ ?module=account&action=$1 [L]
#Банлист
RewriteRule ^banlist/?$ ?module=banlist [L]
#Кабинет
RewriteRule ^cabinet/?$ ?module=cabinet [L]
RewriteRule ^cabinet/([a-z]+)/?$ ?module=cabinet&action=$1 [L]
#Страница сервера
RewriteRule ^servers/([0-9.:]*)/([a-z]+)/?$ ?module=servers&ip=$1&action=$2 [L]
#Модуль принятия оплаты
RewriteRule ^payment_gateway/([a-z]*)/([a-z]*)?/$ ?module=payment_gateway&gateway=$1&action=$2 [L]
#Админка
RewriteRule ^admin_([^/]+)/$ ?module=admin_$1 [L]
RewriteRule ^admin_([^/]+)/([a-z]+)/?$ ?module=admin_$1§ion=$2 [L]
RewriteRule ^admin_([^/]+)/([a-z]+)/([0-9]+)/?$ ?module=admin_$1§ion=$2&id=$3 [L]
RewriteRule ^admin_([^/]+)/([a-z]+)/([0-9a-z_]+)/?$ ?module=admin_$1§ion=$2&subsection=$3 [L]
/
в конце./.well-known/acme-challenge/
, то довольно странно ожидать что он сработает для /.well-known/acme-challenge
./
в конце.location ^~ /.well-known/acme-challenge {
perl_set $var '
sub {
open(my $fh, "<", "/path/to/my.conf") || return "default value";
my $data = <$fh>;
close($fh);
return $data;
}
';
server {
...
proxy_set_header whatever $var;
...
}
/?
Modifying the Query String
By default, the query string is passed through unchanged. You can, however, create URLs in the substitution string containing a query string part. Simply use a question mark inside the substitution string to indicate that the following text should be re-injected into the query string. When you want to erase an existing query string, end the substitution string with just a question mark.
.html/
, но и всего остального что оканчивается на /
.<base href="http://site.ru/">
Redirect
это директива mod_aliasRedirect 301 /pages/articles /articles
/pages/articles -> /articles
/pages/articles/100 -> /articles/100
/pages/articles/ab/bc -> /articles/ab/bc
RewriteRule ^(.*)$ index.php?query=$1 [QSA,L]
=
или !=
рассматривается как обычная строка и проверяется точное совпадение с этой строкой. Поэтому не работает RewriteCond %{REQUEST_URI} !=^/pages/articles/(.*)$
RewriteCond %{REQUEST_URI} !^/pages/articles/(.*)$
.RewriteRule ^pages/articles$ /articles [R=301,L]
RewriteRule ^pages/about$ /about [R=301,L]
RewriteRule ^news\.php$ /news [R=301,L]
m
включает многострочный режим, который влияет только на якорные метасимволы ^ $
.server {
listen 80;
server_name new.prodject.ru;
return 301 https://$host$request_uri;
server {
listen 443 ssl;
server_name new.prodject.ru;
^([^.]+)\.video$
rewrite ^([^.]+)\.video$ $1.html;
location ~ ^([^.]+)\.video$ {
try_files $1.html =404;
}
404 Not Found
На скриншоте её видно в поле псевдонимы
*.lulzslab.ru
.httpd.apache.org/docs/2.4/vhosts/name-based.html
VirtualHost проверяются в том порядке, в котором они расставлены. Используется первое же совпадение c ServerName или ServerAlias.
Т.е. поддомен dream.lulzslab.ru будет обработан в VirtualHost с
ServerAlias: *.lulzslab.ru
если он окажется подлючён раньше файла dream.lulzslab.ru.conf.В apache2.conf подключаются файлы из папки sites-enabled, а не sites-available.
Include sites-enabled/*conf
httpd.apache.org/docs/2.4/mod/core.html#includeФайлы подключаются в алфавитном порядке, так что можно влиять на расстановку добавляя к имени букву или цифру.
Чтобы не возиться с очерёдностью подключения можно вручную убрать псевдоним
*.lulzslab.ru
в настройках основного домена.