I currently use .htaccess and PHP to parse URLs in the following way:
URL:
http://blah.com/article/123_this-that-and-the-other
.htaccess:
RewriteEngine On
RewriteRule ^article/([0-9]+)_(.+)/?$ index.php?page=article&id=$1 [L]
PHP
$page = isset($_GET['page']) ? safeGET($_GET['page']) : null;
$id = isset($_GET['id']) ? safeGET($_GET['id']) : null;
if ($page=='article') { include 'article.php'; } elseif { ... }
I've begun running into problems with the far-too-paranoid Mod_Security engine that doesn't like the word "admin" in my $_GET requests. But mostly I'm just looking for new techniques for parsing SEO friendly URLs.
Anyone know of a more elegant approach?
You could get the whole query string as one paramter.
RewriteRule ^([^.]+)$ index.php?url=$1 [QSA,L]
Then you can split the string with php and convert the different parameters into an array to do whatever you like with.
It is called "router".
See Zend Controller Router f.e.
来源:https://stackoverflow.com/questions/8914401/most-effective-way-to-code-seo-friendly-urls