我正在运行维基,网址如下所示:
/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并抛出“检测到重定向循环!”错误。我不确定我是否真的理解这些东西是如何运作的。
答案 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 )