我正在开发我第一个体面的
PHP站点,而对于应用程序中处理清洁/友好/漂亮的URL的“正确的方式”(假设有这样的事情),我有点困惑.
我看到的方式有两个主要选择(我将以简化的社交新闻网站为例):
1.使用mod_rewrite来处理所有可能的URL.这看起来与以下内容相似但不完全相同:
RewriteRule ^article/?([^/]*)/?([^/]*)/?([^/]*) /content/articles.PHP?articleid=$1&slug=$2 RewriteRule ^users/?([^/]*)/?([^/]*) /content/users.PHP?userid=$1&username=$2 RewriteRule ^search/?([^/]*)/? /content/search.PHP?query=$1
2.将所有内容传递给一些处理程序脚本,让它担心细节:
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) handler.PHP?content=$1
显然,这是所有未经测试的“航空代码”,但是你得到了点.
>这两种方式之一会比其他方式慢吗?大概mod_rewrite是较慢的,因为我将被迫使用.htaccess文件.
>这些方法之一有严重的缺点吗?
>这种事情有没有一个“最佳实践”,还是每个开发者倾向于自己决定的东西?我知道wordpress使用选项二(尽管它比我的调查究竟是如何做的更麻烦).