.htaccess使网址对搜索引擎友好

时间:2012-06-15 02:35:13

标签: php apache .htaccess url seo

我已经找到了解决问题的方法,我找到了link。但它不符合我的问题。我目前正在使用PHP构建一个网站,我在网址中使用了查询字符串。例如,我有很多这样的网址:

www.example.com?page=something
and also
www.example.com?page=something&action=anything

我只想拥有:

www.example.com/something
and
www.example.com/something/anything

我也是.htacess脚本的新手,所以即使我从Google那里得到一些建议,我也不知道脚本对我意味着什么。

感谢。

2 个答案:

答案 0 :(得分:1)

对此有不同类型的架构。

最常见的是mod_rewrite。使用一组RewriteRule,您可以根据需要重定向流量。

这方面的一个例子是:

RewriteEngine On
RewriteBase /

RewriteRule ^([^/]+)(?:/([^/]+))? index.php?page=$1&action=$2 [L]

然而,这些规则的管理可能会变得复杂。在您的情况下,您必须为以下网址创建另一个规则:/some/other/page

另一种方法是使用Front-end Controller Pattern。您通过单个位置(例如index.php)过滤所有流量,以路由。如果您运行的是Apache 2.2.17或更高版本(现在大多数服务器都是这样),您可以使用FallbackResource在一行中执行此操作。

例如:

FallbackResource /index.php

答案 1 :(得分:1)

使用mod_rewrite这是一个相当基本的重写。这样的事情应该可以胜任:

RewriteEngine On
RewriteRule ^([^/]+)(?:/([^/]+))? index.php?page=$1&action=$2 [L]

表达式([^/])表示匹配下一个/的所有内容。 (?:/([^/]+))?包含相同的模式,但被非捕获组(?:/ )?包围,这使得整个第二组可选。