我的服务器上有以下目录:
Document Root
|
|- index.php
|
|- /wiki
| |
| |-index.php
| |
| |-home.md
| |
| |-foo.md
| |
| |-folder
| | |
| | |- foo.md
... and so on
我想重写Wiki路径的ULR。例如:
应该是服务器端
和
应该是服务器端
我的想法是,将子目录转换为GET元素。在PHP中,我可以通过/
拆分目录并执行我的评估(PHP)。在wiki
文件夹可以是无限子文件夹之后。
我使用Apache(Plesk as Webserver)和PHP 7。
我尝试了.htaccess
中的代码:
RewriteEngine on
RewriteRule ^/wiki/(.*) /wiki/?page=$1
和我的用于测试的PHP代码(/wiki/index.php)
echo 'Hello Wiki';
echo $_GET['page'];
如果我致电http://DOMAIN.dtl/wiki
,我会收到维基页面。
如果我拨打http://DOMAIN.dtl/wiki/test
,我会收到404错误。
我的问题是:我的错误在哪里。我非常感谢每一个提示。
将我的htaccess
文件更改为:
RewriteEngine on
RewriteRule ^wiki/(.*) wiki?page=$1
现在我收到以下错误消息(浏览器Safari):ERROR: Too many redirections
答案 0 :(得分:1)
由于相同的网址格式和目标路径sincr wiki / index.php?page = 也匹配模式,因此会出现重写循环错误 ^ wiki /(.*)。要解决此问题,您需要排除目标路径:
RewriteEngine on
RewriteCond ℅{REQUEST_URI} !^/wiki/index.php$
RewriteRule ^wiki/(.*) wiki?page=$1