I running apache 24 locally using php.My goal is each time I make a url request it will link to the root of the project folder, http://localhost/project_root/
example:
http://localhost/project_root/
is inputed links http://localhost/project_root/index.php
a second example:
http://localhost/project_root/foo/bar
would link http://localhost/project_root/index.php
Where the final final idea is that http://localhost/project_root/index.php
handles redirections and loading of resources.
Thanks in advance and any suggestions are welcome.
For this sort of thing I place an .htaccess
file in the root of the application:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d #Optional: Only if it's not a valid directory
RewriteCond %{REQUEST_FILENAME} !-f #Only if it's not a valid file
RewriteRule (.*) index.php?q=$1 [L,QSA]
This passes in the remaining portion of the url as $_GET['q']
, and preserves any other parameters as well.
You'll need to make sure mod_rewrite
is enabled in Apache, and AllowOverride is set to all
in your sites-enabled.
What you are looking for is to implement a front controller
http://www.sitepoint.com/front-controller-pattern-1/
To do so you need to use mod_rewrite to force all .php requests to go to your front controller.
The following can go in your .htaccess or apache config (httpd.conf)
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ project_root/index.php