Bug #67671 [NEW]: mod_rewrite emulation fails for paths with dots in them

From: Date: Wed, 23 Jul 2014 14:25:51 +0000
Subject: Bug #67671 [NEW]: mod_rewrite emulation fails for paths with dots in them
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-186782@lists.php.net to get a copy of this message
From:             tobias at twokings dot nl
Operating system: Debian GNU/Linux jessie x64
PHP version:      5.6.0RC2
Package:          Built-in web server
Bug Type:         Bug
Bug description:mod_rewrite emulation fails for paths with dots in them

Description:
------------
I'm using a mod_rewrite configuration that rewrites everything to
index.php, like this one:

RewriteEngine On
RewriteRule /index.php - [L]
RewriteRule .* /index.php [L]

...and the test script below.

I request a few URLs, such as:

http://localhost/
http://localhost/asdf
http://localhost/asdf.foo

Testing with command-line cURL, talking to Apache 2.4 (as provided by
debian) with mod_php and mod_rewrite, running on localhost:80 in the
default vhost, and php -S localhost:8000.

Test script:
---------------
<?php

// It's not really relevant what we echo here;
// this is just so we can see whether our script actually get hit
echo $_SERVER['REQUEST_URI'];

Expected result:
----------------
Identical results for apache and the built-in web server.

Actual result:
--------------
The built-in web server responds with a "404 Not Found" for URLs
containing dots, instead of echoing the REQUEST_URI.

Sample session:

--------

me@localhost:~/ > curl localhost:80/
/
me@localhost:~/ > curl localhost:80/asdf
/asdf
me@localhost:~/ > curl localhost:80/asdf.foo
/asdf.foo
me@localhost:~/ > curl localhost:8000/
/
me@localhost:~/ > curl localhost:8000/asdf
/asdf
me@localhost:~/ > curl localhost:8000/asdf.foo
<!doctype html><html><head><title>404 Not Found</title><style>
body { background-color: #fcfcfc; color: #333333; margin: 0; padding:0;
}
h1 { font-size: 1.5em; font-weight: normal; background-color: #9999cc;
min-height:2em; line-height:2em; border-bottom: 1px inset black; margin:
0; }
h1, p { padding-left: 10px; }
code.url { background-color: #eeeeee; font-family:monospace; padding:0
2px;}
</style>
</head><body><h1>Not Found</h1><p>The requested resource <code
class="url">/asdf.foo</code> was not found on this
server.</p></body></html>

-- 
Edit bug report at https://bugs.php.net/bug.php?id=67671&edit=1
-- 



Thread (11 messages)

« previous php.bugs (#186782) next »