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/asdfhttp://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
--