组织URL项目的最佳方法是什么?

时间:2010-09-13 11:38:25

标签: php optimization url .htaccess url-rewriting

我正在开发一个门户网站(PHP / MYSQL),它有3个部分的照片,视频,文章。每个部分都有自己的提交表单,用户可以使用该表单提交与其帐户相对应的照片,视频或文章。

所以,我认为应该像

那样的URL

与视频和文章部分相同。现在我对这里使用的内容感到困惑。

  • 我应该使用.htaccess创建这种类型的网址吗?
  • 或者我应该在其中使用带index.php的文件夹/ p​​hotos /或/ photos / browse /。所有文件夹都有index.php,因此文件夹名称将访问它们,URL将如下所示http://example.com/photos/browse/
  • 或者我应该去传统上使用photos.php和browse-photos.php。但是这种方法看起来并不好看。

我可以通过htaccess轻松实现这一目标,但是有些人说它会减慢你的网站速度,因为每次请求网址时它都会处理htaccess。

我还有一个问题,像digg这样的网站,flickr如何形成这个URL。这些是非常大的网站,每天有数百万的页面浏览量,所以他们不使用htaccess吗?

请指导我!

感谢。

4 个答案:

答案 0 :(得分:3)

您可以使用.htaccess和apache的mod_rewrite(或类似的其他Web服务器)。使用mod_rewrite,您将重写传入的URL以适合您的脚本架构。减速可以忽略不计。大多数大型网站都使用这种技巧。

因此,举一个粗略的例子,假设你有以下工作应用程序:

./index.php
./index.php?section=about
./index.php?section=contact
./index.php?section=help
./photos.php
./photos.php?section=browse
./photos.php?section=submit
./photos.php?section=edit

然后你可以把它放在.htaccess

# Turn on URL rewriting
RewriteEngine On

# These are very verbose to show the point. Later you can make them smarter
RewriteRule about index.php?section=about
RewriteRule contact index.php?section=contact

#all under photos/* goes to photos.php
RewriteRule photos/(.*) photos.php?section=$1

然后将您的代码放在index.php和photos.php

中的正确位置

答案 1 :(得分:1)

.htaccess很可能不会成为你的瓶颈,如果你需要非常高的性能,你就不会自己测量问题所在。真正的大型网站不是一个很好的参考,在这种规模上问题是非常不同的。

最灵活和最常用的方法是使用mod_rewrite重定向到一个页面,然后调用应用程序的相应部分。

我现在不担心性能,但更多的是关于灵活性和可维护性。

您也可以将重写规则放在apache主配置中,并节省.htaccess的开销,这应该会快一点

答案 2 :(得分:1)

  

我可以通过htaccess轻松实现这一目标,但是有些人说它会减慢你的网站速度,因为每次请求网址时它都会处理htaccess。

对于非常非常非常高流量的站点,确实没有太多基于正则表达式的重写规则非常重要,因为它们在某种程度上是性能密集型的。

但是,我们大多数人都不需要担心。和Apache一起去吧。

答案 3 :(得分:1)

使用htaccess可以使组织文件比使用大量文件夹更简单。是的,它会对性能产生影响,但是,除非它确实是一个真正高流量的网站,否则影响不会很明显。你担心性能问题,请记住,糟糕的代码会比任何重写规则都慢得多。