Most effective way to code SEO friendly URLs?

2019-01-23 22:01发布

问题:

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.