即使搞清楚如何编写谷歌搜索来解决这个问题,我也很难。根据网址提取数据库中的数据(又名DIGG)
如果你点击了在Digg故事却让这一切像digg.com/news/science/why_the_world_is_tilted
的URL,而不是digg.com/reader.php?r=news&s=science&t=why_the_world_is_tilted
我敢肯定,他们没有几百万的子文件夹,并且我记得读一些4年之前解释了它是如何工作的,但我不记得再次查看它。
即使搞清楚如何编写谷歌搜索来解决这个问题,我也很难。根据网址提取数据库中的数据(又名DIGG)
如果你点击了在Digg故事却让这一切像digg.com/news/science/why_the_world_is_tilted
的URL,而不是digg.com/reader.php?r=news&s=science&t=why_the_world_is_tilted
我敢肯定,他们没有几百万的子文件夹,并且我记得读一些4年之前解释了它是如何工作的,但我不记得再次查看它。
如果你的服务器运行的是Apache和mod_rewrite的安装,你可以创建一个名为的.htaccess包含此文件:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>
这将路径发送到请求的index.php在var $ _GET [” q']。 如果路径是一个现有的文件或目录,它不会发送到index.php的路径。
如果您使用的是Apache,则可以使用mod_rewrite来完成此操作。我不是这方面的专家,但是如果你搜索一些mod_rewrite教程,你可以找到一些例子,其中漂亮的URL在Web服务器上不可见地转换为不同的查询字符串。
有两种基本方法是:
例如,在Catalyst你可以写:
package My::Application::Controller::News;
# …
# :Path without an argument means the root for the controller.
# The controller is news so: /news/
# :Args(2) means with two arguments
sub article :Path :Args(2) {
my ($self, $c, $category, $article_name) = @_;
# …
}
而且$category
将填充"science" and
$ ARTICLE_NAME with
“why_the_world_is_tilted”`
你说什么是clean url's。这种模式通常用于MVC架构。