Сейчас я работаю над созданием персонального сайта. Я делаю это не в первый раз, но это моя первая крупная попытка реализовать SSI. Однако я наткнулся на стену с директивой if-else, которая использует одну из переменных среды CGI как часть сравнения.
Даже после некоторых ограниченных попыток отладки все выходные данные и документация, которые у меня есть, означают, что сделанные сравнения должны потерпеть неудачу. Это не так, и директива if-else делает неправильную оценку.
Вот код в файле index.shtml
:
<head>
<!--#set var="page" value="Home" -->
<!--#include file="headlinks.shtml" -->
<style>
img#ref { float: right; margin-left: 8px; border-width: 0px; }
</style>
</head>
Вот код в файле headlinks.shtml
:
<title><!--#echo var="page" --> – <!--#echo var="HTTP_HOST" --></title>
<!--#set var="docroot" value="${DOCUMENT_ROOT}" -->
<!--#echo var="docroot" -->
<!--#if expr="( $docroot != '/Applications/MAMP/htdocs' ) || ( $docroot != '/home/dragarch/public_html' )" -->
<link rel="stylesheet" type="text/css" href="../style.css">
<link rel="shortcut icon" type="image/svg+xml" href="../favicon.svg" />
<!--#else -->
<link rel="stylesheet" type="text/css" href="style.css">
<link rel="shortcut icon" type="image/svg+xml" href="favicon.svg" />
<!--#endif -->
А вот вывод для файла index.shtml
:
<title>Home – dragarch</title>
/Applications/MAMP/htdocs
<link rel="stylesheet" type="text/css" href="../style.css">
<link rel="shortcut icon" type="image/svg+xml" href="../favicon.svg" />
И style.css
, и favicon.svg
находятся в корне документа с index.shtml
, поэтому директива if должна завершиться ошибкой и по умолчанию будет использоваться выход директивы else. Как вы можете видеть, хотя корень документа (который в настоящее время является папкой MAMP htdocs в моей собственной записной книжке) верен в соответствии с выводом директивы echo, сравнение в директиве if-else не позволяет правильно сравнить строки.
Я использую эту страницу для своей документации: http://httpd.apache.org/docs/2.2/mod/mod_include.html
Я в полной растерянности относительно того, почему это так, и мне нужна небольшая помощь здесь.
EDIT: я должен отметить, что dragarch
— это имя хоста, которое я настроил в /etc/hosts
так, чтобы оно указывало на 127.0.0.1, чтобы я мог протестировать сайт без использования localhost
. Это не имеет никакого реального влияния на функциональность чего бы то ни было, кроме как просто действовать как более красивое имя хоста для использования.