问题
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?
回答1:
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.
回答2:
It is called "router".
See Zend Controller Router f.e.
来源:https://stackoverflow.com/questions/8914401/most-effective-way-to-code-seo-friendly-urls