laravel框架URL重写

本文由澳门新葡亰赌995577,码农网 –
曾钊泳原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划!

最近接触了laravel框架,感觉laravel框架还是非常强大的,集成了很多的基础功能,还有非常详细的中文文档和强大的社区论坛,相比于Thinkphp框架还是更加的完善,更加强大的。

简介

我手上有个用PHP写的网站,类似于个人测试性质的站点,我独立设计,在这过程中犯了所有可能的设计和编程上的错误,同时我也收获了很多,这也促使我去学习PHP和MySQL。每当我学习新的技术或web实践时,都会想到我的网站会从中得益。正如你可以想象到的,它的可读性不强。测试网站往往在代码可读性和可维护性方面表现糟糕,尤其当你仅仅因为某些必要的功能而学习一门编程语言时,而这也正是我一直以来学习PHP的方式。

自从了解了ASP.NET
MVC,我便思考如何在这个网站上实践这套MVC模式。我喜欢这整套概念的一切,尤其是路由。但我并不想为此而重构整个网站的现有框架,担心这样一来,大部分现有代码将变成像是异物一样,不受我的控制和理解。网站已经有一个WordPress搭建的博客,通过修改模板让它看起来就像是一个完整的站点,好比在一巨大的墙上画涂鸦一样,这简直是一团糟。

然后呢?刚不久前,我学习了一些REST
API的相关知识,这是为日常工作所需而学习的。有没有一个最佳的方式去学习这些呢?我知道有个网站会从中获益。在网上阅读了一些关于在PHP环境应用RESTful
API的文章,我了解了.htaccess文件。现在我知道怎样在PHP中搭建路由,因此,也许能在测试网站实施自己设计的小型的、简单的MVC模型。

在安装了laravel的相关运行环境之后,laravel对于运行环境要求还是比较高的,各个版本对于PHP版本的要求也不一样,在配置完成之后,打开页面发觉laravel的路由是有一定规律的,当然我们可以在其中的web.php中配置路由,不过每次访问的域名都是localhost/目录/public/index.php/,这个路由还是有点长的,而且每次都是需要加上public和index.php,难免有点烦人,所以我们可以配置一个虚拟主机来去掉URL中的public,在配置去掉其中的index.php,这样就变得更加简单了。

设想

在PHP中搭建自定义路由的关键在于增加一个.htaccess文件,以下请看

具体实现:

我在网站文件夹目录中新增了一个”API”文件夹,在里面新建一个.htaccess文件,内容是我从Corey
Maynard写的一段文本中参考来的。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?request=$1 [QSA,NC,L]
</IfModule>

长话短说,有了这个配置,所有以”www.yoursite.com/api/”开头或指向不存在的文件或路径的请求都会被重定向到index.php文件。$1变量值表示请求的URL地址,”request”变量名也很好理解,用$_REQUEST[‘request’]命令就可轻易获取。

另外,index.php文件和.htaccess文件在同一访问层级。

1.配置虚拟主机

参考文章
Apache服务器在80端口配置多域名虚拟主机的方法

将其中添加主机访问目录修改为laravel项目的public目录

<VirtualHost *:80>
    ServerName laravel.com
    DocumentRoot "E:/xampp/htdocs/laravel/public/"
    <Directory "E:/xampp/htdocs/laravel/public/">
    AllowOverride All
    </Directory>
</VirtualHost>

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

网站地图xml地图