Я пытаюсь развернуть машину CoreOS из OVA на веб-клиенте VMware ESXi 6.0 (не vCenter).
Я хочу настроить машину перед первой загрузкой, однако в этом интерфейсе, похоже, отсутствует флажок « Включение после развертывания »:
После нажатия Готово машина запускается. ...
Я унаследовал сайт (форум vbulletin ) и перенес его с другого хостинга на свой, скопировав все с помощью команды scp
. В корневом каталоге было следующее .htaccess
RewriteOptions inherit
RewriteEngine on
RewriteCond %{HTTP_HOST} ^.*$
RewriteRule ^/?$ "http\:\/\/example\.com\/forums\/content\/" [R=301,L]
. Я не знаю, как это должно было работать, но оно работало, несмотря на то, что папка / forum / content /
НЕ работала. существовать. Однако после переезда на мой хостинг он перестал работать, выдав ошибку 404.
Что я делаю не так?
Как я упоминал в комментариях, когда mod_rewrite используется для каждого каталога .htaccess
, в пути URL-адреса, соответствующем шаблону RewriteRule
, нет префикса ведущей косой черты. Префикс каталога (который всегда оканчивается косой чертой ), сначала удаляется.
Однако ваши директивы также расположены в неправильном порядке и могут быть исправлены. Директива RewriteCond
применяется к единственному RewriteRule
, которое следует за ним. Вы вставили RewriteRule
между этими директивами, так что вы фактически изменили логику. Но эти две директивы RewriteRule
можно легко объединить, и эта директива RewriteCond
выглядит лишней.
Если вам не нужна директива RewriteOptions
, я бы ее удалил. Это могло потребоваться на предыдущем хосте.
Попробуйте вместо этого следующее:
RewriteEngine on
RewriteRule ^(forums/content/)?$ http://example.com/forums/content.php [R=301,L]
Шаблон ^ (forum / content /)? $
соответствует либо / forum / content /
или просто /
, что соответствует исходному RewriteRule
.
Я удалил директиву RewriteCond
, которая проверяла соответствие ] HTTP_HOST
. Я предполагаю, что он должен был соответствовать чему-то (т.е. не ничему). Однако он просто сопоставил все , что всегда было бы истинным, что кажется немного бессмысленным.
Нет необходимости в экранировании всех обратных косых черт в RewriteRule
подстановка . Это обычная строка, а не регулярное выражение. (Такое ненужное экранирование типично для cPanel.)
ОБНОВЛЕНИЕ: Вам необходимо убедиться, что MultiViews не включен. Это можно отключить с помощью директивы Options
в верхней части вашего файла .htaccess
:
Options -MultiViews
Если у вас есть существующие директивы Options
, то это можно объединить, например:
Options -MultiViews +FollowSymLinks
Поскольку / forum
является физическим каталогом, если MultiViews включен, это может привести к тому, что mod_negotiation сделает внутренний запрос для content.php
(или даже чего-то еще, например content.html
, если он существует) до того, как mod_rewrite сможет инициировать перенаправление.