URL重写

URL重写

复制本页链接http://document.thinkphp.cn/manual_3_2.html#url_rewrite

可以通过URL重写隐藏应用的入口文件index.php,下面是相关服务器的配置参考:

[ Apache ]

  1. httpd.conf配置文件中加载了mod_rewrite.so模块
  2. AllowOverride None 将None改为 All
  3. 把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下

  1. mod_rewrite.c>
  2. RewriteEngine on
  3. RewriteCond %{REQUEST_FILENAME} !-d
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

[ IIS ]

如果你的服务器环境支持ISAPI_Rewrite的话,可以配置httpd.ini文件,添加下面的内容:


  1. RewriteRule (.*)$ /index\.php\?s=$1 [I]

在IIS的高版本下面可以配置web.Config,在中间添加rewrite节点:


  1. name="OrgPage" stopProcessing="true">
  2. url="^(.*)$" />
  3. logicalGrouping="MatchAll">
  4. input="{HTTP_HOST}" pattern="^(.*)$" />
  5. input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
  6. input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
  7. type="Rewrite" url="index.php/{R:1}" />

[ Nginx ]

在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginx.conf中配置转发规则实现:


  1. location / {
    // …..省略部分代码
  2. if (!-e $request_filename) {
  3. rewrite ^(.*)$ /index.php?s=$1 last;
  4. break;
  5. }
  6. }

其实内部是转发到了ThinkPHP提供的兼容模式的URL,利用这种方式,可以解决其他不支持PATHINFO的WEB服务器环境。

如果你的ThinkPHP安装在二级目录,Nginx的伪静态方法设置如下,其中youdomain是所在的目录名称。


  1. location /youdomain/ {
  2. if (!-e $request_filename){
  3. rewrite ^/youdomain/(.*)$ /youdomain/index.php?s=$1 last;
  4. }
  5. }

原来的访问URL:

http://serverName/index.php/模块/控制器/操作/[参数名/参数值...]

设置后,我们可以采用下面的方式访问:

http://serverName/模块/控制器/操作/[参数名/参数值...]

默认情况下,URL地址中的模块不能省略,如果你需要简化某个模块的URL访问地址,可以通过设置模块列表和默认模块或者采用子域名部署到模块的方式解决,请参考后面的模块和域名部署部分。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/114243.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Windows 强制删除文件及文件夹命令「建议收藏」

    Windows 强制删除文件及文件夹命令「建议收藏」一、删除文件或目录CMD命令rd/s/q盘符:\某个文件夹  (强制删除文件文件夹和文件夹内所有文件)del/f/s/q盘符:\文件名  (强制删除文件,文件名必须加文件后缀名)二、删除文件或目录BAT命令1、新建.BAT批处理文件输入如下命令,然后将要删除的文件拖放到批处理文件图标上即可删除。DEL/F/A/Q RD/S/Q …

    2022年6月1日
    46
  • iview中Modal弹窗做form表单验证相关问题[通俗易懂]

    iview中Modal弹窗做form表单验证相关问题[通俗易懂]iview中Modal弹窗做form表单验证相关问题

    2022年4月22日
    40
  • Django(29)模板变量「建议收藏」

    Django(29)模板变量「建议收藏」变量模板中可以包含变量,Django在渲染模板的时候,可以传递变量对应的值过去进行替换。变量的命名规范和Python非常类似,只能是阿拉伯数字和英文字符以及下划线的组合,不能出现标点符号等特殊字符。

    2022年8月7日
    3
  • 如何完整卸载MySQL[通俗易懂]

    如何完整卸载MySQL[通俗易懂]如果MySQL没有卸载干净,想重装就不行了,本人按照网上的教程来过一遍,但是总是会有残留,于是自己琢磨了一下:1.先停止mysql服务,cmd模式下输入netstopmysql;2.进入控制面板卸载mysql;3.删除mysql文件夹下的my.ini文件及所有文件;4.运行“regedit”文件,打开注册表删除HKEY_LOCAL_M

    2022年6月17日
    34
  • Windows 10配置远程开机[通俗易懂]

    Windows 10配置远程开机[通俗易懂]简介最近有个需求,在外边或者是上班的时候想从家里的电脑拿点资料,虽然家里的路由器有公网IP地址,但是电脑总不能一直开着吧,然后就想到可以远程通过网卡唤醒电脑。前提条件拥有一个公网IP(一般可以找运营商申请),如果拥有的公网IP是动态的话,需要绑定DDNS域名,DDNS域名可以自行注册。 电脑主板支持网络唤醒功能。配置方法主板开启网络唤醒功能,如图:设置网络适配器支持唤醒…

    2022年5月5日
    160
  • Jenkins首次安装选择推荐插件时出现“: No such plugin: cloudbees-folder” 解决方案

    说一下场景第一次安装Jenkins,访问http:ip:8080 ,输入管理员密码。然后选择社区推荐的插件安装方式,提示出现:安装过程中出现一个错误: No such plugin: cloudbees-folder原因很明显,就是没有上面提示这个插件导致。解决三步走主要思想是:先跳过推荐安装插件界面,使用手动上传插件的方式,然后手动上传Ok后,重新回到推荐插件安装界面,选择推荐插件…

    2022年2月28日
    315

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号