RewriteEngine On RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC] RewriteRule ^/t/client/(care/.*)$ http://www.theshop.com/$1 [NC,R,L]
Это перенаправит
http://www.pathfinder.com/T/client/care/foo.html
илиhttp://pathfinder.com/T/client/care/foo.html
кhttp://theshop.com/care/foo.html
использование флагов
Если вы хотите перенаправить только страницу входа, используйте
RewriteRule ^/t/client(/care/login.html)$ http://www.theshop.com$1 [NC,R,L]
Расширения в документе здесь -выполняются оболочкой, если сами расширения не цитируются или сам документ здесь -не цитируется.
Чтобы процитировать подстановку команд и различные другие переменные, которые оболочка попытается раскрыть в документе здесь -в вашем примере:
cat <<EOL > Vagrantfile
Vagrant.configure("2") do |config|
config.vm.define "vagrant-host"
config.vm.provision "shell", inline: <<-SHELL
sudo su
apt update
ipaddress=\\\$(hostname -I | awk '{print \\\$2}')
echo "*** IP address is \\\$ipaddress ***"
SHELL
end
EOL
Обратите внимание, что мы должны заключать в кавычки не только $
в подстановке команды, но также $2
в коде awk
и $ipaddress
в вызове echo
. На самом деле нам нужно дважды заключить эти строки в кавычки, используя \\\
, так как они на самом деле являются частью встроенного здесь -документа(SHELL
). каждый \\\$
будет заменен на \$
, когда будет написано Vagrantfile
.
Если вы действительно не хотите, чтобы оболочка раскрывала какую-то переменную в документе здесь -, обычно проще просто процитировать документ здесь -целиком. Это делается путем заключения в кавычки исходной здесь -строки разделителя документа :
.cat <<'EOL' > Vagrantfile
Vagrant.configure("2") do |config|
config.vm.define "vagrant-host"
config.vm.provision "shell", inline: <<-'SHELL'
sudo su
apt update
ipaddress=`hostname -I | awk '{print $2}'`
echo "*** IP address is $ipaddress ***"
SHELL
end
EOL
Здесь я решил процитировать как встроенный документ здесь -, так и внешний документ здесь -.
В зависимости от того, как и где используется этот код, вы можете убедиться, что и первый, и встроенный здесь -документы имеют отступы с табуляцией и что оба здесь -документа начинаются с<<-
(<<-'EOL'
и<<-'START'
). Это гарантирует, что встроенный здесь -документ может быть правильно проанализирован (окончание SHELL
должно быть первым в строке после создания Vagrantfile
).
Обратите внимание, что я не комментировал содержание документа здесь -с точки зрения того, чего он пытается достичь. Например, я не знаю, имеет ли смысл sudo su
или нет.
Вы должны экранировать обратные кавычки в вашем документе с помощью обратной косой черты:
ipaddress=\`hostname -I | awk '{print $2}'\`