我正在努力学习如何正确地制作CMS并遇到一些问题。
文件夹结构:
Root: (folder named learnCMS) admin (directory) index.php js (directory) css (directory) index.php .htaccess
这一切都在WAMP上,所以我的域名是 localhost / learnCMS /
现在,我正在尝试创建一个.htaccess文件,该文件会为此域名制作重写规则。到目前为止,我只需要两个规则,但我不能让其中一个工作,这就是我要问的原因。基本上我需要一个将重定向'的规则。任何访问如下: domain / admin + [anystring] 到子目录的index.php。基本上这个:
这是我的.htaccess和徒劳的尝试,我得到一个错误,上面写着:
"在此服务器上找不到请求的URL /admin/index.php。"
RewriteEngine on RewriteRule ^admin /admin/index.php [QSA,L] RewriteRule ^([^./]{3}[^.]*)$ index.php?page=$1 [QSA,L]
P.S。我是初学者,所以如果你能用易于理解的术语解释我会很感激。
答案 0 :(得分:0)
严格来说,localhost
是您的域名,而不是localhost/learnCMS
。根据您告诉我们的内容,您的Web服务器的文档根目录是learnCMS
目录的父目录。我现在就叫它/path/to/parent
。
对于绝对URI(以/
开头),Web服务器通过预先挂起文档根目录将URI路径转换为文件名。因此/admin/index.php
URI会转换为/path/to/parent/admin/index.php
文件名。正如错误消息所示,您的服务器上找不到此内容。
对于相对URI(不以/
开头),Web服务器在预先挂起文档根之前包含子目录。为此,请使用..
RewriteRule ^admin admin/index.php [QSA,L]
(/
中的/admin/index.php
已删除)