<Directory>
доступна только в server config, virtual host.<Directory not allowed here
AllowOverride None
на AllowOverride All
sudo a2enmod rewrite
sudo service apache2 restart
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^shop/catalog/(.*)$ /shop/catalog.php?category=$1 [L,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^shop/(.*)$ /shop/tovar.php?id=$1 [L]
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.*)$ $1.php [L]
Вот как ещё пример
aasg assg gsaa gggh
Мы ищем sgaa
Нам должно вывести aasg gsaa
\b(?=\w*s)(?=\w*g)(?=(\w*a){2})[sga]{4}\b
<FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">
<FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))$">
*.init.js
файлы. s = s.replace(regularBadWord, '*'.repeat(regularBadWord.length));
s = s.replace(regularBadWord, m => '*'.repeat(m.length));
Если в строке замены указаны новые аргументы запроса, то предыдущие аргументы запроса добавляются после них. Если такое поведение нежелательно, можно отказаться от этого добавления, указав в конце строки замены знак вопроса
rewrite ^/([0-9]+)/$ /index.php?id=$1? last;
rewrite ^/some/([0-9]+)/$ /index.php?secret=abc&id=$1? last;
location = /api/v2 {
proxy_ssl_server_name on;
proxy_pass https://dog.ceo/api/breeds/image/random;
}
RewriteCond %{QUERY_STRING} (?:^|&)sort=
(?:^|&)
можно сразу в начало проверяемой строки %{QUERY_STRING} добавить &
.RewriteCond &%{QUERY_STRING} &sort=
RewriteCond &%{QUERY_STRING} &sort=|&display=
RewriteCond &%{QUERY_STRING} &(PAGEN_1=\d+) [OR]
RewriteRule ^catalog/.+$ /$0?%1 [R=301,L]
&
в конец проверяемой строки можно избавиться от (?:$|&)
RewriteCond &%{QUERY_STRING}& &sort=(?:SHOWS|NAME|PRICE)&|&display=(?:block|list|table)&
RewriteCond &%{QUERY_STRING} &(PAGEN_1=\d+) [OR]
RewriteRule ^catalog/.+$ /$0?%1 [R=301,L]