On Thu, Aug 11, 2011 at 08:11:25AM -0500, Dan McGee wrote:
On Thu, Aug 11, 2011 at 7:46 AM, Lukas Fleischer <archlinux@cryptocrack.de> wrote:
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de> --- * Rules rewritten using a single regular expression. * Added an equivalent lighttpd rewrite rule.
UPGRADING | 17 +++++++++++++++++ 1 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/UPGRADING b/UPGRADING index 331870e..aff780f 100644 --- a/UPGRADING +++ b/UPGRADING @@ -22,6 +22,23 @@ ALTER TABLE PackageDepends ADD INDEX (DepName); 6. Run the upload directory transform script ("scripts/uploadbuckets.sh") and rotate the converted directory structure into place.
+7. In order to to provide backward compatible package URLs, enable mod_rewrite +and add the following to your Apache configuration (inside the "VirtualHost" +container or optionally create a ".htaccess" file in the upload directory): + +---- +RewriteEngine on +RewriteRule ^/packages/([^/]{1,2})([^/]*/(PKGBUILD|.*\.tar\.gz))$ /packages/$1/$1$2 +---- + +The following equivalent rule can be used for lighttpd setups: + +---- +url.rewrite-once = ( "^/packages/([^/]{1,2})([^/]*/(PKGBUILD|.*\.tar\.gz))$" => "/packages/$1/$1$2" ) +----
I'm still -1 on this. I don't think we need to assume the contents of these directories in a rewrite rule, nor do I think it makes the rules any clearer. Can we please just use rules that don't make assumptions?
We need to make assumptions here. If we don't, there's no way to determine whether a client tries to fetch the file "foo" from the upload directory of package "fo" or the package upload directory of "foo" when requesting "/packages/fo/foo". Of course, we could check for existence of both files in that case and just use "/packages/fo/foo" if both of them exist, but this is even more unpredictable and difficult to implement. Keep in mind that this is a backward compatibility measure only.
Does this even let me go to http://aur.archlinux.org/packages/gephi/ correctly? I don't think it does.
No. I don't think that we do officially support directory listing, thought. And as I pointed out before, this is impossible to implement.