服务器端 url过滤 php,服务器配置URL重写隐藏thinkphp5入口文件

本文介绍了如何在Apache、Nginx和IIS服务器上配置URL重写规则,以实现去掉URL中'index.php'的美化。Apache通过.htaccess文件和mod_rewrite模块实现,Nginx使用location块进行配置,而IIS则涉及web.config文件和URL重写模块。Apache对ThinkPHP框架支持最佳。
摘要由CSDN通过智能技术生成

如果没配置URL重写规则的情况下,每次访问都要加上index.php,看起来是没这么美观和方便的。

例如:http://test.ll00.cn/index.php/index/test/hello

本文主要记录Apache、Nginx和IIS配置。

Apache配置

站点配置:

# 将PHP可以访问的文件限制到指定的目录树(http://php.net/manual/zh/ini.core.php#ini.open-basedir)

# 配置这个主要是有些环境默认把open_basedir设置为DocumentRoot,导致thinkphp无法正常使用

# 不是所有环境都这样,所有看情况配置

php_admin_value open_basedir "/home/wwwroot/www.ll00.cn:/tmp/:/var/tmp/:/proc/"

DocumentRoot "/home/wwwroot/www.ll00.cn/public"

ServerName www.ll00.cn

SetOutputFilter DEFLATE

Options FollowSymLinks

AllowOverride All

Order allow,deny

Allow from all

DirectoryIndex index.html index.php

.htaccess配置:

需要Apache加载mod_rewrite.so模块,并且将AllowOverride配置项设置为All,例如AllowOverride All

框架安装后,默认提供一个.htaccess文件,里面就写好了重写规则,一般都是安装即用。

可以说,Apache是对thinkphp框架支持最好的了!

Options +FollowSymlinks -Multiviews

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

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

Nginx

站点配置server

{

listen 80;

server_name www.ll00.cn;

index index.php index.html index.htm default.php default.htm default.html;

# 站点目录

root /www/wwwroot/www.ll00.cn/public;

# URL重写规则

location / {

if (!-e $request_filename){

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

}

}

}

IIS

IIS这个了解不大多,只是简单的尝试了下,后面坑太多,放弃了。

web.Config文件配置:

在IIS的高版本下面可以配置下面的URL重写规则,如果不行,再试试其它方式。

主要是rewrite节点的配置,如果配置文件已有其它配置,将rewrite节点的配置放在system.webServer内的最后面即可。<?xml version="1.0" encoding="UTF-8"?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值