This site has been archived and you can no longer log in or post new messages. For up-to-date community resources please visit ezplatform.com

eZ Community » Forums » Developer » default rewrite rules not working...
expandshrink

default rewrite rules not working properly with content/download

default rewrite rules not working properly with content/download

Wednesday 13 October 2010 7:44:08 pm - 4 replies

The suggested rewrite rule that comes with default eZP installation in .htaccess_root:

RewriteRule !(\.(gif|jpe?g?|png|css|js|swf|html?)|var(.+)storage.pdf(.+)\.pdf)$ index.php

is not working properly. The problem is when you upload for example a .jpg image as an object of File class. The uploaded image can then be uploaded via an URL that goes like this:

/content/download/7151474/29980970/version/1/file/mypic.jpg

So because the URL ends with ".jpg", the it is not rewritten with index.php, and you get a 404 page.

As a quickfix I made this change:

RewriteRule !(design|var|share)/.*\.(gif|jpe?g|png|css|js|html)|var(.+)storage.pdf(.+)\.pdf$ index.php 

but this won't work if you have an eZ node with a path like this:

/var/some_node.jpg

Another idea is to have this rewrite rules:

RewriteRule ^.*content/download/.*$ index.php
RewriteRule !*\.(gif|jpe?g|png|css|js|html)|var(.+)storage.pdf(.+)\.pdf$ index.php 

But this will not work for static images URLs like this:

/design/content/download/some_image.jpg

Also a change to this last rule:

RewriteRule ^content/download/.*$ index.php
RewriteRule !*\.(gif|jpe?g|png|css|js|html)|var(.+)storage.pdf(.+)\.pdf$ index.php 

that matches only URLs that begin with "content/download" won't work because if you have multiple siteacces, it won't rewrite the URLs that begin with the siteaccess name.

I'll think about this further, but...

Anyone already has a better idea?

Can we get a rewrite rule that will work for all the cases?

Wednesday 13 October 2010 7:54:21 pm

Simple: only use location-based rules instead of extension-based ones.

1. add location-based rules for all extensions design dirs, for those cache dirs that are to be accessed (but NOT to var/cache/* mind you), etc

2. the last catch-all rule does not even need to analyze file extension

Wednesday 13 October 2010 7:55:17 pm

ps: you might find a working example in the rewrite rules commonly used for vhost setups (somewhere in the docs or on this site)

Thursday 14 October 2010 10:01:34 am

Try this one:

http://doc.ez.no/eZ-Publish/Technical-manual/3.10/Installation/Virtual-host-setup#comment15233

Sunday 17 October 2010 8:48:49 pm

Simple: only use location-based rules instead of extension-based ones.

1. add location-based rules for all extensions design dirs, for those cache dirs that are to be accessed (but NOT to var/cache/* mind you), etc

2. the last catch-all rule does not even need to analyze file extension

Hm, why is then this rule made like this in the default .htaccess_root that comes with eZP?

Why don't we have by default the correct rewrite rules in .htaccess_root?

expandshrink

You must be logged in to post messages in this topic!

36 542 Users on board!

Forums menu

Proudly Developed with from