rewrite 没有起作用的原因

众所周知,zend framework 的工作机制是 要用 mod_rewrite 的,

按照要求配置了服务器, 并且正确修改了 .htaccess 之后, IE地址栏运行

http://localhost/zend2/public/index/add 

 

结果报错 Object Not Found !

于是判断rewrite 的配置有问题。

 

之前我是用 zf 命令生成了 zf 项目, 并用 zf create action add 生成了动作函数。

由于我对 rewrite 命令并不熟悉, 所以 public/.htaccess 并没有被修改过,是 zf 自动做成的,应该是正确的,那为什么会错呢。

原始 .htaccess 文件内容如下

 

RewriteEngine ON

 

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

查了一下 apache rewrite 手册,发现里面提到了 RewriteBase 命令, 我的理解是rewrite 是用来指明基本路径的,

于是领悟了。

 

由于我配了 Alias zend2 /xxxx/xxxx/xxx 这样的别名, 所以应该指明 RewriteBase  的路径,否则默认情况这个路径指向在

documentroot 下, 于是在.htaccess 中加了

 

RewriteBase /zend2/public

 

再运行 http://localhost/zend2/public/index/add 

问题果然解决了。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值