模块的Yii url管理器无法正常运行404

时间:2016-04-14 08:28:28

标签: php yii

我在项目中创建了名为inquiry的模块。

如果我在线以下跑 http://enqphp.intermesh.net/index.php?r=enquiry/Enquiryser/index/ 然后这个URL工作得很好。但我希望它像是短暂的 http://enqphp.intermesh.net/enquiry

为此,我在main.php部分的URL manager文件中做了一些修改:

return array(
   'caseSensitive' => true,
       'urlSuffix' => '/',
       'showScriptName' => false,
      'urlFormat' => 'path',
   'rules' =>
    array(
    '/' => array('site/index'),

    /* my files starting from here */
    '<modules>/<controller:\w+>/<id:\d+>' => '<modules>/<controller>/view', '<modules>/<controller:\w+>/<action:\w+>/<id:\d+>' => '<modules>/<controller>/<action>',
    '<modules>/<controller:\w+>/<action:\w+>/*' => '<modules>/<controller>/<action>',
    '/enquiry/'=>'enquiry/Enquiryser/index',
    ),
)

但它不起作用并且找不到404页面。 任何人都可以帮助我,我错过了什么?

2 个答案:

答案 0 :(得分:0)

您使用什么网络服务器? Nginx,Apache?

<强>的Apache 要在您的URL中隐藏index.php,您可以将mod_rewrite指令添加到文档根目录中的.htaccess文件或虚拟主机配置中:

RewriteEngine on

# prevent httpd from serving dotfiles (.htaccess, .svn, .git, etc.)
RedirectMatch 403 /\..*$
# 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

<强> Nginx的 您必须为服务器配置以下配置

location / {
        index  index.html index.php;
        try_files $uri $uri/ /index.php?$args;
    }

答案 1 :(得分:0)

您可以通过将以上行添加到yii\web\Application

来手动配置/path/to/your_app/common/config/main.php
'controllerMap' => [
    'abcd' => 'backend\controllers\BankController'
],

所以配置文件看起来像: enter image description here