将URL参数重写为目录 - 就像维基百科URL一样

时间:2012-07-03 02:16:30

标签: url-rewriting wiki

我正在运行维基,网址如下所示:

/wiki/index.php?title=MyTitle

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

/维基/ MyTitle

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

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

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

1 个答案:

答案 0 :(得分:0)

不是制定复杂的规则,只需将 all 的流量路由到index.php,然后将“子目录”作为参数处理。我使用this guide来帮助我这样做。从该网站:

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 )