cds-wh 2011-08-04 17:46:03 4296次浏览 9条回复 0 0 0

刚刚遇到个问题,我想通过.htaccess设置,把service.php?s=11&c=22转向到index.php?r=server/index&s=11&c=22,当然,s和c的值不是固定的。 我写了个规则:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^service\.php?(.*)$ index.php?r=server/index&$1
RewriteRule . index.php

规则已经成功转向到了 index.php?r=server/index,但是后面的s=11&c=22没有取到,弄了半天也不行,希望哪位大侠帮忙看看,是什么问题,先谢了

  • 回复于 2011-08-04 18:07 举报

    这样写规则有什么好啊?

  • 回复于 2011-08-04 18:09 举报

    看不懂。。

  • 回复于 2011-08-04 18:17 举报

    不错,我以前想把admin.php重写为admin就是想不要后缀,但是没搞定啊

  • 回复于 2011-08-04 18:18 举报

    就是需求说需要一个接口server.php直接访问系统(即:www.domain.com/server.php直接访问www.domain.com/index.php?r=server/index,而且就这一个controller是这样),不经过index.php?r=server/index访问,所以想直接用这个直接跳转下。现在问题就是后面的$1没匹配上。

  • 回复于 2011-08-04 19:23 举报

    那你应该做两个应用!

  • 回复于 2011-08-05 08:52 举报

    不是可以用Yii里自带的urlManage来写吗

  • 回复于 2011-08-05 09:01 举报

    他的是两个入口,可以做两个应用,仿照前后台去做。

  • 回复于 2011-08-05 10:01 举报

    恩,改代码确实可以,做个跳转也行其实,不过现在要求是在不改代码的情况下完成,而且这个入口是给机器自动调用用的接口,所以现在的情况是最好用.htaccess,哎。还得再研究研究啊。

  • 回复于 2011-08-05 11:42 举报

    让我鼓捣出来了,分享下:

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www.domain.com
    RewriteCond %{REQUEST_URI} ^/service\.php
    RewriteRule .  www.domain.com/index.php?r=server/index&%{QUERY_STRING} 
    

    另:因为使用.htaccess会导致apache性能下降,所以最后直接把以上命令写在主服务器配置文件中,结果是一样的。个人观点,不对还希望指正。

您需要登录后才可以回复。登录 | 立即注册