<input.txt awk -F: '$2 !~ "hello123"' >output.txt
Установите :
в качестве разделителя полей, печатайте все строки, где второй столбец не содержитhello123
Если это будет частью скрипта, может быть полезно передать переменную оболочки в awk вместе с шаблоном поиска:
var='hello123'
awk -F: -v pattern="$var" '$2 !~ pattern' input.txt > output.txt
Решение намного проще, чем я думал. Вы просто перенаправляете весь HTTP на HTTPS, а затем обрабатываете фактическую перезаписи на виртуальном хосте 443, благодаря @Hauke Laging, который указал, что фактическое перенаправление должно происходить на виртуальном хосте 443, а также ошибки в RegEx, который я использовал. Эта статья Как заставить https, www и завершающую косую черту с одним перенаправлением также интересна для чтения.
<VirtualHost *:80>
ServerName domain.local
DocumentRoot "/var/www/html/"
# html directory contains gp directory
<Directory /var/www/html>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</VirtualHost>
<VirtualHost *:443>
ServerName domain.local
DocumentRoot "/var/www/html/"
RewriteEngine on
RewriteCond "%{HTTP_HOST}%{REQUEST_URI}" "^domain\.local\/?$"
RewriteRule.* https://domain_new.local
SSLEngine on
# html directory contains gp directory
<Directory /var/www/html>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
SSLCertificateFile /etc/pki/tls/certs/domain.local.crt
SSLCertificateKeyFile /etc/pki/tls/private/domain.local.key
SSLCertificateChainFile /etc/pki/tls/certs/domain.local.ca-bundle
</VirtualHost>
Я не проверял, но заметил несколько (потенциальных )проблем:
RewriteCond "%{HTTP_HOST}%{REQUEST_URI}" "^domain\.local\/?$"
\
перед /
может быть проблемой. В общем, нет смысла включать REQUEST_URI
в RewriteCond
, так как он у вас снова в строке RewriteRule
. RewriteRule "^domain\.local\/?$"
RewriteRule
соответствует только REQUEST_URI
. https://domain.local
.