1

我正在运行一个 wiki,并且 URL 如下所示:

/wiki/index.php?title=我的标题

但我希望它看起来像这样:

/wiki/我的标题

我怎样才能做到这一点?我认为这可以通过 .htaccess 和重写规则来完成,我在这个网站和谷歌上环顾四周,但我找不到任何真正帮助我的东西。现在我在 /wiki/ 目录的 .htaccess 中得到了这个。

RewriteEngine      on
RewriteOptions MaxRedirects=1
RewriteRule        ^(.+)     index\.php\?title=$1     [L]

但这只是将我重定向到 /wiki/index.php?title=Index.php 并引发“检测到重定向循环!” 错误。我不确定我是否真的了解这些东西是如何工作的。

4

1 回答 1

0

无需制定复杂的规则,只需将所有流量路由到 index.php,然后将“子目录”作为参数处理。我使用本指南来帮助我这样做。从那个网站:

Options +FollowSymLinks
IndexIgnore */*
# Turn on the RewriteEngine
RewriteEngine On
#  Rules
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

把它放在你的 .htaccess 文件中,所有的流量都会转到 index.php。然后将 index.php 写成本质上是一个“路由器”,它将加载和显示服务器上的其他 PHP 脚本。

您可以通过创建一个数组(同样,从链接的站点)从 PHP 访问参数:

$requestURI = explode(‘/’, $_SERVER[‘REQUEST_URI’]);

然后$requestURI将是给定参数的数组,因此:

/wiki/MyTitle

将变成:

Array ( [0] => [1] => wiki [2] => MyTitle )
于 2012-07-03T02:22:01.910 回答