Problem Statement
I'm currently working on an internal RESTful API, and I'm using our main domain name as an environment identifier. However, I noticed that Slim does not like it at all for a route to have dot in there.
Sample case
I have a local web server running using PHP's built-in webserver, and I invoked php -S 0.0.0.0:5000
to get it running.
Once the web server is up, I have a simple 'hello world' on the index page. Everything's working fine and dandy.
I then set up a route as following:
$app->get('/:domain/:id', function($domain, $id)
{
echo $domain . ' ' . $id;
}
With this, I set up the route to hopefully resolve 0.0.0.0:5000/apple.com/juicers
. I tried with 0.0.0.0:5000/apple/juicers
and the page prints out apple juicers. But with 0.0.0.0:5000/apple.com/juicers
, I get a 404 Not Found error.
What I've tried so far
URL Rewrite
I looked up the available resources on Google, and from Slim framework's Github issues as well. It seems like someone encountered a similar issue: https://github.com/codeguy/Slim/issues/359
The proposed solution in that ticket was: URL rewriting fix. I tried that but to no avail. I set up a .htaccess
at the root of my project directory, and turned on AllowOverRide All
in my Mac's httpd.conf file.
php -S 0.0.0.0:5000 index.php
Instead of running php -S 0.0.0.0:5000
by itself, I ran the command on index.php. At this point, instead of throwing a Not Found error, the slim framework is resolving to my base route, which I set up as follows:
$app->get('/', function() { echo "hello world"; });
Thank you
I'm at my wit's end, and any help will be highly appreciated. Thank you so much for reading!