【问题标题】:Yii throwing URL CException on every requestYii 在每个请求上抛出 URL CException
【发布时间】:2012-08-10 11:30:57
【问题描述】:

我在 EC2 上使用 Yii 框架设置了一个 Web 应用程序。当我在 EC2 实例上传输文件时,出现此错误

CException

The URL pattern "<controller:\w+>/<id:\d+>" for route "<controller>/view" is not a valid regular expression.

/var/www/html/framework/web/CUrlManager.php(700)

我在 main.php 中的 URL 规则是

'urlManager'=>array(
            'urlFormat'=>'path',
            'rules'=>array(
                '<controller:\w+>/<id:\d+>'=>'<controller>/view',
                '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
                '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
            ),
        ),

我在控制器文件夹中有一个名为“ApiController.php”的控制器。在我的本地机器上它工作正常,但问题出在 EC2 实例上。

这些是 main.php 中的一些配置

'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
    'name'=>'AppName',
    'defaultController'=>'Api',

【问题讨论】:

  • 您能告诉我生成此网址的网址类型吗?即使是各种各样的,它也将有助于获得一个例子
  • 我尝试访问此xxx.xx.xxx.xxx,然后访问此xxx.xx.xxx.xxx/api/index,请查看我的问题中的更新,看看您是否可以提供帮助
  • 好的,你有一个不需要这个 app 的 urlmanagement 的根 url(在 yii 意义上)?我的意思是因为这是某种 api,你有浏览器可访问的根 url 吗?如果是,那么该根 url 是否可以正常工作?
  • 是的,我有浏览器可访问的 url,就像与 EC2 实例关联的公共 ip。并且访问根 url 会像所有其他人一样给出相同的错误
  • 我自己也遇到了这个问题,重启解决了!你可以查看my posts in this forum topic 了解我是如何重启的!

标签: php curl amazon-ec2 yii


【解决方案1】:

使用 .htaccess 来回答我自己的问题会消除错误

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 2023-02-01
    相关资源
    最近更新 更多