В настоящее время я использую .htaccess и PHP для анализа URL-адресов следующим образом:
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 { ... }
Я начал сталкиваться с проблемами с слишком параноидальным движком Mod_Security, которому не нравится слово «admin» в моих запросах $ _GET. Но в основном я просто ищу новые методы анализа сильных URL-адресов.
Кто-нибудь знает более элегантный подход?
Вы можете получить целую строку запроса как один параметр.
RewriteRule ^([^.]+)$ index.php?url=$1 [QSA,L]
Затем вы можете разделить строку на php и преобразовать различные параметры в массив, чтобы делать все, что вам нравится.
Он называется «маршрутизатор».
См. Zend Controller Router fe