Hi all,
We are packaging SilverStripe for /contrib and are looking to provide a
simple silverstripe.conf with the package that will allow the allow
end-users to get up and running without having to configure Apache.
This is on OpenSolaris 2008.11 with the integrated Apache 2.2.
SilverStripe creates a .htaccess file in it's top level directory, this
contains it's rewrite conditions and rules. It does all this from an
initial install page (php page) but when you click to install it comes
back saying that rewriting isn't working. You can confirm this by
maually accessing the URI used for the test.
The install page confirms that mod_rewrite is enabled and the only other
change that's required is one that allows Apache to use a per directory
.htaccess file. This change is to add:
<Directory /silverstripe>
Options FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
</Directory>
To httpd.conf (which we are doing directly at the moment) where
/silverstripe is the directory path in htdocs. The key supposedly being
the AllowOverride All directive. SilverStripe creates the following
.htaccess in htdocs/silverstripe:
### SILVERSTRIPE START ###
<Files *.ss>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Files>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /silverstripe
RewriteCond %{REQUEST_URI} !(\.gif)|(\.jpg)|(\.png)|(\.css)|(\.js)|(\.php)$
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* sapphire/main.php?url=%1&%{QUERY_STRING} [L]
</IfModule>
### SILVERSTRIPE END ###
The rewrite that fails during the test fails with a HTTP 404 and the
following in the error log:
*[Fri May 29 16:43:52 2009] [error] [client 129.150.120.0] File does not
exist: /var/apache2/2.2/htdocs/silverstripe/InstallerTest, referer:
http://10.16.252.31:81/silverstripe/install.php
[Fri May 29 16:55:42 2009] [error] [client 129.150.120.0] File does not
exist: /var/apache2/2.2/htdocs/silverstripe/InstallTest*
Any ideas as to what might be wrong with this setup?
Amanda