I have researched this for about 2+ hours including 1+ hour of preparing this report (I must be a slow worker, considering I haven't slept in 24 hours :-P)
The virtual server side include works in Dreamweaver (except for image rendering), but does not work when I browse to the web page.
<!--#include virtual="/partialHtml/businessResult.shtml" -->
I realize that I have overridden far too many configuration settings (and if there's a simpler and more elegant way, perhaps just using a .htaccess
file in ~/Sites/mysite.com/
then please also comment) ;-)
Starting from the top (1) sudo nano /etc/apache2/httpd.conf
#
# Filters allow you to process content before it is sent to the client.
#
# To parse .shtml files for server-side includes (SSI):
# (You will also need to add "Includes" to the "Options" directive.)
#
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
(2) sudo nano /etc/apache2/extra/httpd-vhosts.conf
<VirtualHost *:80>
<Directory /Users/tidy/Sites/mysite.com>
Options +FollowSymlinks +SymLinksIfOwnerMatch +Includes
DirectoryIndex index.htm
AllowOverride All
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</Directory>
DocumentRoot /Users/tidy/Sites/mysite.com
ServerName mysite.local
ErrorLog "/Users/tidy/Sites/mysite.com/log/error_log"
CustomLog "/Users/tidy/Sites/mysite.com/log/access_log" common
</VirtualHost>
(3) sudo nano /private/etc/apache2/users/tidy.conf
<Directory "/Users/tidy/Sites/">
Options +Indexes +MultiViews +FollowSymlinks +SymLinksIfOwnerMatch +Includes
AllowOverride All
Order allow,deny
Allow from all
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</Directory>
(4) sudo nano ~/Sites/mysite.com/.htaccess
AddType text/html .shtml
AddHandler server-parsed .shtml
DirectoryIndex index.html index.htm
Options +Includes
XBitHack on
I also tried to use XBitHack on
by doing chmod +x ~/Sites/mysite.com/partialHtml/businessResult.html
and then including that file (apparently it makes .html
file server side includes efficient, if you don't want to use .shtml
files)
Obviously I'm doing a sudo apachectl configtest
to make sure everything's okay.
I get a warning (that I've tried to get rid of) but the syntax is OK.
httpd: Could not reliably determine the server's fully qualified domain name, using complexity.local for ServerName
Syntax OK
Then a sudo apachectl restart
Here is my most recent activity in cat ~/Sites/mysite.com/log/access_log
::1 - - [08/Jan/2013:12:11:05 +0000] "OPTIONS * HTTP/1.0" 200 -
::1 - - [08/Jan/2013:12:11:07 +0000] "OPTIONS * HTTP/1.0" 200 -
::1 - - [08/Jan/2013:12:11:08 +0000] "OPTIONS * HTTP/1.0" 200 -
::1 - - [08/Jan/2013:12:11:15 +0000] "OPTIONS * HTTP/1.0" 200 -
::1 - - [08/Jan/2013:12:11:16 +0000] "OPTIONS * HTTP/1.0" 200 -
::1 - - [08/Jan/2013:12:11:17 +0000] "OPTIONS * HTTP/1.0" 200 -
127.0.0.1 - - [08/Jan/2013:12:12:03 +0000] "GET / HTTP/1.1" 200 3924
127.0.0.1 - - [08/Jan/2013:12:12:03 +0000] "GET /css/site.css HTTP/1.1" 200 3077
127.0.0.1 - - [08/Jan/2013:12:12:03 +0000] "GET /css/bootstrap.css HTTP/1.1" 200 124223
127.0.0.1 - - [08/Jan/2013:12:12:03 +0000] "GET /img/logo.png HTTP/1.1" 200 19217
127.0.0.1 - - [08/Jan/2013:12:12:04 +0000] "GET /img/searchFormGradient.gif HTTP/1.1" 200 501
127.0.0.1 - - [08/Jan/2013:12:12:04 +0000] "GET /img/glyphicons-halflings-white.png HTTP/1.1" 200 8777
127.0.0.1 - - [08/Jan/2013:12:12:04 +0000] "GET /img/headerGradient.png HTTP/1.1" 200 216
127.0.0.1 - - [08/Jan/2013:12:12:04 +0000] "GET /js/bootstrap.min.js HTTP/1.1" 200 31596
::1 - - [08/Jan/2013:12:12:14 +0000] "OPTIONS * HTTP/1.0" 200 -
127.0.0.1 - - [08/Jan/2013:12:12:18 +0000] "GET / HTTP/1.1" 304 -
127.0.0.1 - - [08/Jan/2013:12:12:18 +0000] "GET /css/bootstrap.css HTTP/1.1" 304 -
127.0.0.1 - - [08/Jan/2013:12:12:18 +0000] "GET /js/bootstrap.min.js HTTP/1.1" 304 -
127.0.0.1 - - [08/Jan/2013:12:12:18 +0000] "GET /img/logo.png HTTP/1.1" 304 -
127.0.0.1 - - [08/Jan/2013:12:12:18 +0000] "GET /css/site.css HTTP/1.1" 304 -
127.0.0.1 - - [08/Jan/2013:12:12:18 +0000] "GET /img/headerGradient.png HTTP/1.1" 304 -
127.0.0.1 - - [08/Jan/2013:12:12:18 +0000] "GET /img/glyphicons-halflings-white.png HTTP/1.1" 304 -
127.0.0.1 - - [08/Jan/2013:12:12:18 +0000] "GET /img/searchFormGradient.gif HTTP/1.1" 304 -
The HTTP/1.1 304
code is HTTP Error 304 - Not modified
which isn't an error, it's a signal from the server to the browser, that the current content hasn't changed since the last request.
As you can see from the GET
requests, there's no sign of /partialHtml/businessResult.shtml
Here is my most recent activity in cat ~/Sites/mysite.com/log/error_log
[Tue Jan 08 11:24:49 2013] [error] [client 127.0.0.1] File does not exist: /Users/tidy/Sites/mysite.com/favicon.ico
And after all of that... the Server Side Include mechanism is not working :-(
Any assistance is greatly appreciated.
Tidy.
I think I have the solution to my problem.
I was having the same problem with Server Side Includes on Windows 7, because I was under the false impression that only the included file has to have an .shtml
extension.
Because the line:
<!--#include file="partialHtml/businessResult.shtml" -->
Was in a file called:
index.html
The server side include module was not pre-processing the file.
After I changed index.html
to index.shtml
the server side include module correctly
pre-processed everything.
TL;DR - The file that includes a server side include has to have a .shtml extension.