This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
using_multiviews_for_pretty_url_routing [2012/09/27 02:27] Joel Dare |
using_multiviews_for_pretty_url_routing [2020/06/01 22:53] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Using MultiViews for Pretty URL Routing ====== | ||
+ | I often build small PHP web projects. Typically, I don't want to use a large MVC Framework for the project because it only consists of a few PHP files. But, in many cases, I'd still like Pretty URL's without file extensions. | ||
+ | |||
+ | http://www.example.com/post | ||
+ | |||
+ | One simple solution is to turn on MultiViews in Apache. You can do this in the httpd.conf file or in the .htaccess file. MultiViews are setup on a per directory basis. So, you'd put something like the following in your virtual host setup. | ||
+ | |||
+ | <code> | ||
+ | <VirtualHost *:80> | ||
+ | ServerName example.com | ||
+ | DocumentRoot /httpd/example/ | ||
+ | <Directory /httpd/example/> | ||
+ | Options FollowSymLinks MultiViews | ||
+ | </Directory> | ||
+ | </VirtualHost> | ||
+ | </code> | ||
+ | |||
+ | With the MultiViews option turned on, if a file for a particular URL doesn't exist, Apache will look for a close match. So, if you have a file called //post.php// apache will find it when you enter a URL with just ///post//. No rewrite rules are required. | ||
+ | |||
+ | Instead of the mod_rewrite module, MutlViews requires the [[http://httpd.apache.org/docs/2.2/mod/mod_negotiation.html|mod_negotiation]] module. I typically find that it's already installed. |