apache 支持php urlmanager,Yii中urlManager的配置

本文详细介绍了如何在Yii2框架中设置URL管理,包括在main.php中添加urlManager组件,定义urlrules.php文件以自定义路由规则,以及在Apache和Nginx服务器环境下配置重写模块,确保URL无index.php且带有.html后缀。然而,根据提供的配置,作者遇到了在Linux+Nginx环境下文件未找到的错误。
摘要由CSDN通过智能技术生成

第一步:

在main.php配置文件的component域中添加urlManager模块,并加入urlrules.

$urls = include(dirname(__FILE__) . '/urlrules.php');

'urlManager'=>array(

'urlFormat' => 'path',

'showScriptName' => false,//隐藏index.php

'urlSuffix' => '.html',//后缀

'rules' => $urls,

),

第二步:在同级目录下写urlrules.php.如:

return array(

'/index.html' => 'site/index', //首页

'search' => 'search/index',

);

第三步,当然是配置服务器的rewrite模块,使得入口为index.php

1)apache下,在网站根目录下建立.htaccess如下:

Options +FollowSymLinks

IndexIgnore */*

RewriteEngine on

# if a directory or a file exists, use it directly

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . index.php

2) nginx下在php配置模块和location模块添加rewrite如下:

location / {

root /home/george/workspace/EclipsePHP/webroot;

index index.html index.php index.htm;

#try_files $uri $uri/ @rewrite;

if (!-f $request_filename){

rewrite (.*) /index.php;

}

}

location ~ \.php$ {

root /home/george/workspace/EclipsePHP/webroot;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /home/george/workspace/EclipsePHP/webroot$fastcgi_script_name;

include fastcgi_params;

if (!-f $request_filename){

rewrite (.*) /index.php;

}

}

这个照抄的,可是根本出不来。

环境是:LINUX+nginx

报错为:File not found.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值