我们在使用ThinkPHP开发时,如果使用默认配置,那么我们的URL可能是这样的:

http://serverName/think/index.php/Home/User/profile/uid/1002

这么一长串URL里面包含协议、域名、目录名、入口、模块名、控制器名、操作名、传入的参数(/uid/1002/mode/edit),今天小编就和大家分享如何让URL变得简单清晰。

url转换成链接(让链接简单清晰易分享)(1)

图片来自网络

必须元素

在URL中,必须包含协议和域名,这是让浏览器能够定位到我们网站的关键,但是浏览器默认会使用http协议,所以我们直接输入localhost也可以正常访问。

可选元素

除了必选元素外的全是可选元素QAQ……

隐藏目录名

我们在创建项目的时候,是在Web跟目录下创建think目录,然后将ThinkPHP项目文件拷贝到think目录下的,所以当我们访问的时候需要加上think目录,如果我们想隐藏目录名,有两种解决方案:

  1. 直接将ThinkPHP放到Web根目录

    打开URL Rewrite

    如果你使用的是phpStudy,那么httpd.conf在安装路径\Apache\conf下,如果你使用的是mac内置Apache,在/etc/apache2下,如果你使用的是WDCP,是默认开启的。

    Mac重启Apache下使用命令sudo apachectl restart ,WDCP重启Apache在系统设置-服务重启-重启WEB。

    2.在think目录下新建文件.htaccess文件,并输入以下内容:

    <IfModule mod_rewrite.c>

    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

    </IfModule>

    Nginx下配置URL重写

    在nginx.conf中添加以下内容:

    location /youdomain/ {

    if (!-e $request_filename){

    rewrite ^/youdomain/(.*)$ /youdomain/index.php?s=$1 last;

    }

    }

    重启Nginx即可。

    此时,可以直接使用以下地址来访问开头的链接:

    http://serverName/Home/User/profile/uid/1002

    url转换成链接(让链接简单清晰易分享)(2)

    图片来自网络

    隐藏模块名

    绑定模块

    如果你的项目下只有一个模块,可以使用绑定模块功能,直接在入口文件index.php中增加常量定义:

    define('BIND_MODULE','Home');

    设置默认模块

    如果你拥有多个模块,直接使用绑定模块功能会使其他的模块无法访问,所以我们需要使用设置默认模块功能。

    编辑Application\Common\Conf\config.php,添加以下配置,注意必须有允许列表才可以生效。

    // 允许访问的模块列表

    'MODULE_ALLOW_LIST' => array('Home','Admin');

    'DEFAULT_MODULE' => 'Home', // 默认模块

    此时,可以直接使用以下地址来访问开头的链接:

    http://serverName/User/profile/uid/1002

    url转换成链接(让链接简单清晰易分享)(3)

    图片来自网络

    隐藏控制器名

    其实一般很少存在只有一个控制器的项目,不过还是有可能性的(例如微信公众号后台),所以跟大家分享一下隐藏控制器名的方法。其实很简单,在config.php中添加'DEFAULT_CONTROLLER' => 'User'即可。如果只想对某个模块生效,可以放在模块目录下的配置文件中。

    这样的话,我们的链接就变为了下面这样:

    http://serverName/profile/uid/1002

    路由

    什么?还嫌不够简单?

    http://serverName/p/1002

    那这样够简单了吧?怎么实现的?当然是靠路由了,不过本章篇幅有限,下次再分享路由的知识,欢迎关注小编获取第一手信息。

    url转换成链接(让链接简单清晰易分享)(4)

    图片来自网络

    如果您觉得小编的教程对您有所帮助,请点击关注支持小编,您的关注是对小编最大的鼓励。

    ,