使用nikic / fast-route PHP包进行网址路由:
除非我指定路线的整个路径而不仅仅是路线名称,否则PHP网址路由不起作用:
例如,为了为/hello-world
创建路线,我必须指定整个路径:localhost/myProject/public/index.php/hello-world
$r->addRoute('GET', '/localhost/myProject/public/index.php/hello-world', function () {
echo 'Hello World';
});
.htaccess文件中是否需要进行某些操作?
关于当前项目的细节:
我没有使用框架,但Patrick Louys' GitHub上没有框架教程:https://github.com/PatrickLouys/no-framework-tutorial
我在Fedora Linux上使用XAMPP作为Web服务器
我的代码位于我的/ home目录,而Web服务器位于/ opt / lampp ...我已将它们与符号链接相关联:sudo ln -s /home/... /opt/lampp/htdocs
(如果这很重要)......我我知道该教程依赖于PHP内置服务器(php -S localhost:8000
)
答案 0 :(得分:0)
可能它错了,但你必须写/helloworld
而不是./helloworld
答案 1 :(得分:0)
您必须将代码(文件)放在htdocs文件夹中,并遵循以下路径:
/opt/lampp/htdocs/
然后创建名为hello-world的文件夹,此文件夹必须以这种方式位于htdocs文件夹中:
/opt/lampp/htdocs/hello-world
接下来打开一个终端并像root用户一样访问,将目录更改为hello-world然后你必须给这个文件夹提供permision:
chmod 667 hello-world -R
-R用于为文件夹hello-world及其中的所有文件提供permision。这就是全部!现在,当您尝试localhost / hello-world时,您将看到您的项目正在运行!
注意:如果这不起作用,请尝试在路径/ opt / lampp / htdocs /后面的htdocs文件夹中创建一个名为test.php的php文件。该文件必须包含在内:
<h1><b><?php echo "hello wordl!"; ?></b></h1>
再次,您必须为文件提供permision(chmod 667)。然后将其复制并粘贴到浏览器导航栏中:
localhost/test.php
你必须在浏览器中看到一个大胆风格的大招呼世界。
答案 2 :(得分:0)
我的快速修复:
1-在公共目录中创建.htaccess
文件。所有请求都将转发到index.php
2-添加一个函数来解析提交的整个URL,以便检索正确的URI。基本上,该函数修剪整个网址,如localhost/public/index.php/hello-world
,并返回/hello-world
。 /hello-world
是我们的快速路由路由器注册的路由,当我们的Web服务器接收到这样的URL时,将调用相应的控制器
来源(解释和代码示例):http://blogs.shephertz.com/2014/05/21/how-to-implement-url-routing-in-php/