[pmwiki-users] CleanUrls, again (was: Putting ".html" extensions...)
H. Fox
haganfox at users.sourceforge.net
Fri Mar 3 17:51:58 CST 2006
On 3/3/06, Patrick R. Michaud <pmichaud at pobox.com> wrote:
> Here's my brief thoughts on the "lowercase" versus "file exists"
> discussion surrounding CleanUrls.
>
> Just to restate things: the "lowercase" version says that Apache
> directly serves any url path beginning with a lowercase letter, and
> passes all others to PmWiki. The "file exists" version says that
> Apache directly serves any url path that corresponds to an existing
> file, and passes all others to PmWiki.
>
> My comments:
>
> - I agree with Hagan that the topic is so complex (and there
> are so many options) that the CleanUrls page should focus on a
> single consistent approach, and not try to describe all of the
> ways to do it.
>
> For the "file exists" approach:
[list of drawbacks]
> Given the limitations of the "file exists" approach above, I
> should note that my experience has been that admins are equally
> confused by the "lowercase" approach as well, especially when
> clean urls is being used to enable pages from the root.
>
> I don't have a strong hard-and-fast answer for which approach
> the clean urls page should use. Because there's potential for
> difficulty with the "file exists" approach on case-insensitive
> filesystems, I think I'd tend towards using lowercase letters
> as the primary distinguishing method.
>
> But I also think it doesn't have to be an "either-or" situation --
> we can always do both. Suppose we take the basic clean urls
> .htaccess structure as sending non-lowercase urls to PmWiki:
>
> # Use mod_rewrite to enable "Clean URLs" for a PmWiki installation.
> RewriteEngine On
> # The rewrite base will be the document root.
> RewriteBase /
> # Send requests without parameters to pmwiki.php.
> RewriteRule ^$ ~someuser/pmwiki/pmwiki.php [L]
> # Send requests for index.php to pmwiki.php.
> RewriteRule ^index.php$ ~someuser/pmwiki/pmwiki.php [L]
> # Send requests to pmwiki.php, appending the query string part.
> RewriteRule ([^a-z].*) ~someuser/pmwiki/pmwiki.php?n=$1 [QSA,L]
I like that this is shorter, but I don't like that it results in
Bad Request
Your browser sent a request that this server could not understand.
> Then for those sites and admins that want to also directly serve
> files that begin with other characters, we add a subsection
> after example three that looks something like:
>
> !!! Serving files and directories with uppercase letters
>
> To allow url requests for files or directories that begin
> with uppercase letters to continue to work, add the following
> lines immediately before the last RewriteRule above:
>
> RewriteCond %{REQUEST_FILENAME} !-f
> RewriteCond %{REQUEST_FILENAME} !-d
>
> Is that workable?
Something like it. Let me go back to the drawing board before
answering any further...
Hagan
More information about the pmwiki-users
mailing list