URL ohne index.php
Aus eZ Wiki
Entwurf
Diese Seite muss vervollständigt werden. Für Diskussionen und Rechercheergebnisse kann auch die Diskussionsseite genutzt werden.
Alles zum Thema schöne URLs mit eZ Publish.
Da kursieren diverse Versionen in den eZ-Foren. Teils für die httpd.conf, teils für .htaccess. Da muss man sich mal was hübsches raussuchen und für eigene Bedürfnisse zusammenstellen. Hier ist der Kram erstmal kommentarlos zusammengetragen.
http.conf
DirectoryIndex index.php
<FilesMatch "([^.+])$">
order allow,deny
allow from all
</FilesMatch>
RewriteEngine On
RewriteBase /
# to avoid double entries in searchengine indexes
#RewriteCond %{HTTP_HOST} ^(hostname2\.example\.com)$
#RewriteRule ^(.*)$ http://hostname.example.com/$1 [redirect=permanent,last]
# to use WebDAV
#RewriteCond %{HTTP_HOST} ^(webdav\..*)$
#RewriteRule ^(.*)$ webdav.php [L]
# to use SOAP
#RewriteCond %{HTTP_HOST} ^(soap\..*)$
#RewriteRule ^(.*)$ soap.php [L]
# swiching for this cases the frontcontoller access
RewriteRule ^robots\.txt$ - [L]
RewriteRule ^favicon\.ico$ - [L]
RewriteRule ^sitemap\.xml - [L]
Rewriterule ^var/storage/.*$ - [L]
Rewriterule ^var/[^/]+/storage/.*$ - [L]
RewriteRule ^var/cache/texttoimage/.*$ - [L]
RewriteRule ^var/[^/]+/cache/texttoimage/.*$ - [L]
Rewriterule ^design/[^/]+/(stylesheets|images|flash|banner|javascript)/.*$ - [L]
Rewriterule ^share/icons/.*$ - [L]
Rewriterule ^extension/[^/]+/design/[^/]+/(stylesheets|images|javascripts?)/.*$ - [L]
Rewriterule ^packages/styles/.+/(stylesheets|images|javascript)/[^/]+/.*$ - [L]
RewriteRule ^packages/styles/.+/thumbnail/.*$ - [L]
# Uncomment the following lines when using popup style debug.
# RewriteRule ^/var/cache/debug\.html.* - [L]
# RewriteRule ^/var/[^/]+/cache/debug\.html.* - [L]
# for use of dynamicTreemenu
RewriteRule ^content/treemenu/.*$ index_treemenu.php [L]
# directing all other requests to the frontcontroller
RewriteRule .* index.php
.htaccess
This topic has surfaced several times. If I find the time I'll write a tutorial for removing index.php without virtual host setup soon...
These are my rewrite-rules in .htaccess which allows me to use clean URLs without having access to httpd.conf:
RewriteEngine On
# Static cache
RewriteCond %{HTTP_HOST} ^(www\.)?myserver\.com$ [NC]
RewriteCond /dir/to/ez/static/siteaccess/index.html -f
RewriteRule ^/$ static/siteaccess/index.html [L]
RewriteCond %{HTTP_HOST} ^(www\.)?myserver\.com$ [NC]
RewriteCond /dir/to/ez/static/siteaccess/index.html -f
RewriteRule ^$ static/siteaccess/index.html [L]
RewriteCond %{HTTP_HOST} ^(www\.)?myserver\.com$ [NC]
RewriteCond %{REQUEST_METHOD} !^POST$
RewriteCond /dir/to/ez/static/siteaccess/$1/index.html -f
RewriteRule ^(.*)$ static/siteaccess/$1/index.html [L]
# eZ Publish access
RewriteCond %{HTTP_HOST} ^(www\.)?myserver\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/index\.php/siteaccess [NC]
RewriteCond %{REQUEST_URI} !^/design/ [NC]
RewriteCond %{REQUEST_URI} !^/var/ [NC]
RewriteCond %{REQUEST_URI} !^/static/ [NC]
RewriteCond %{REQUEST_URI} \.(gif|jpe?g|png|css|js|html|ico)|var(.+)storage.pdf(.+)\.pdf$
RewriteRule ^(.*)$ /index\.php/siteaccess/$1 [L]
site.ini
Wichtig ist die Einstellung in der site.ini.
[SiteAccessSettings] ForceVirtualHost=true RemoveSiteAccessIfDefaultAccess=enabled
- Weblinks
