Php 编写SEO友好URL的最有效方法?

Php 编写SEO友好URL的最有效方法?,php,.htaccess,seo,url-routing,friendly-url,Php,.htaccess,Seo,Url Routing,Friendly Url,我目前使用.htaccess和PHP以以下方式解析URL: URL: http://blah.com/article/123_this-that-and-the-other RewriteEngine On RewriteRule ^article/([0-9]+)_(.+)/?$ index.php?page=article&id=$1 [L] .htaccess: http://blah.com/article/123_this-that-and-the-other Rew

我目前使用.htaccess和PHP以以下方式解析URL:

URL

http://blah.com/article/123_this-that-and-the-other
RewriteEngine On
RewriteRule ^article/([0-9]+)_(.+)/?$   index.php?page=article&id=$1 [L]
.htaccess

http://blah.com/article/123_this-that-and-the-other
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 { ... }
我已经开始遇到问题,因为我的$GET请求中有一个过于偏执的Mod_安全引擎,它不喜欢“admin”这个词。但我主要是在寻找解析SEO友好URL的新技术


有谁知道更优雅的方法吗?

您可以将整个查询字符串作为一个参数

RewriteRule ^([^.]+)$ index.php?url=$1 [QSA,L]
然后,您可以使用php拆分字符串,并将不同的参数转换为一个数组,以执行任何您喜欢的操作。

它被称为“路由器”


见f.e.

是的,我以前试过。。。不管是.htaccess还是php解析请求,都是一样的。。。到目前为止,我发现它使用起来更干净(代码更少)。htaccessThis还可以获取其他每种文件类型的f.e.图像。谢谢你,我还没有看到!乍一看,它似乎大大增加了所需的编码量。我正在寻找简化事情的方法。这是一种干净的方法,似乎需要更多的工作,但使用框架对于构建可靠的应用程序来说是非常好的。您和Asa的重写都会产生双重内容。“双重内容”指的是
.htaccess
将URI元素复制到
$\u GET
超全局吗?如果是这样的话,我突然想到我甚至不需要
$\u GET
,当我可以简单地用PHP解析
$\u服务器['REQUEST\u URI']
。。。这不是Zend Controller路由器框架所做的吗?我认为您应该尝试使用整个标记来检查数据库。如果您只想使用一个整数,那么您的URL可以同时包含这两个整数。