моя настройка для сервера debian. У меня возникла проблема, когда несколько пакетов содержат одно и то же имя. например apache2. так это было моим решением.
function _apt_install() {
apt-get install -y $1 > /dev/null
}
function _apt_install_norecommends() {
apt-get install -y --no-install-recommends $1 > /dev/null
}
function _apt_available() {
if [ `apt-cache search $1 | grep -o "$1" | uniq | wc -l` = "1" ]; then
echo "Package is available : $1"
PACKAGE_INSTALL="1"
else
echo "Package $1 is NOT available for install"
echo "We can not continue without this package..."
echo "Exitting now.."
exit 0
fi
}
function _package_install {
_apt_available $1
if [ "${PACKAGE_INSTALL}" = "1" ]; then
if [ "$(dpkg-query -l $1 | tail -n1 | cut -c1-2)" = "ii" ]; then
echo "package is already_installed: $1"
else
echo "installing package : $1, please wait.."
_apt_install $1
sleep 0.5
fi
fi
}
function _package_install_no_recommends {
_apt_available $1
if [ "${PACKAGE_INSTALL}" = "1" ]; then
if [ "$(dpkg-query -l $1 | tail -n1 | cut -c1-2)" = "ii" ]; then
echo "package is already_installed: $1"
else
echo "installing package : $1, please wait.."
_apt_install_norecommends $1
sleep 0.5
fi
fi
}
Я думаю, что самый чистый способ описан как здесь, на IIS-aid.com . Это только web.config, и поэтому, если вы меняете сервер, вам не нужно помнить о всех шагах, которые вы выполнили с настраиваемой страницей ошибок 403.4 или другими специальными разрешениями, это просто работает.
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Чистый способ изменяет только схему URL из http -> https и оставляет все остальное эквивалентным. Он должен быть на стороне сервера, чтобы не было проблем с браузером.
JPPinto.com имеет пошаговые инструкции о том, как это делается, за исключением того, что они используют javascript ( HttpRedirect.htm) вместо перенаправления на стороне сервера. По какой-то причине я не мог заставить IE запускать javascript, если вы включили «Показать дружественные сообщения об ошибках HTTP», который включен по умолчанию. Другое дело в сценарии заключается в том, что перенаправление на путь не работает даже в FF или Chrome. Сценарий всегда перенаправляется на root. (Возможно, я что-то пропустил, потому что он должен перенаправляться на путь.)
По этим причинам я использовал страницу ASP для перенаправления. Недостатком является то, что для этого требуется, чтобы на сервере был включен классический ASP.
OpsanBlog имеет сценарий ASP и инструкции , которые хорошо работают с IIS6.
У меня было несколько проблем с использованием этого метода с IIS7. Проблемы с пользовательским интерфейсом в основном связаны с тем, что IIS7 позволяет пропустить что-то.
Менеджер IIS должен показать имя файла в заголовке.
Самое легкое и чистое решение, которое я нашел, это
. Преимущество в том, что он не требует дополнительных строк кода. Недостатком является то, что он перенаправляет вас на абсолютный URL.
Я думаю, что «чисто» вы имеете в виду как с перенаправлением 300. Конфигурация для большого количества серверов & amp; языки здесь .
Global.asax
protected void Application_BeginRequest()
{
if (!Context.Request.Url.AbsoluteUri.Contains("localhost") && !Context.Request.IsSecureConnection)
Response.Redirect(Context.Request.Url.ToString().Replace("http:", "https:"));
}