2

我已经为我的问题寻找一些解决方案,我找到了这个链接。但这不符合我的问题。我目前正在使用 PHP 构建一个网站,并且我已经在 url 中使用了查询字符串。例如,我有很多这样的网址:

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 得到了一些建议,我也不知道该脚本对我意味着什么。

谢谢。

4

2 回答 2

1

为此有不同类型的架构。

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

这方面的一个例子是:

RewriteEngine On
RewriteBase /

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

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

另一种方法是使用前端控制器模式。您的所有流量过滤器都通过一个地方(例如 index.php)进行路由。如果您正在运行 Apache 2.2.17 或更高版本(现在大多数服务器都是这样),您可以使用FallbackResource.

例如:

FallbackResource /index.php
于 2012-06-15T02:48:15.950 回答
1

这是使用 mod_rewrite 进行的相当基本的重写。像这样的东西应该可以完成这项工作:

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

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

于 2012-06-15T02:48:49.957 回答