【问题标题】:How do I use pretty URLs in Yii without a root path?如何在没有根路径的情况下在 Yii 中使用漂亮的 URL?
【发布时间】:2015-04-07 03:22:34
【问题描述】:

我根据文档在 Yii 中打开了漂亮的 URL

http://www.yiiframework.com/doc-2.0/guide-runtime-routing.html

主页是可见的,但是当我尝试转到另一个 URL 时,它给了我一个错误。

http://localhost:81/xxx/web/shopping/search?q=toaster

在此服务器上找不到请求的 URL /xxx/web/shopping/search。

我尝试创建一个通用规则,但没有帮助。

    'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'enableStrictParsing' => false,
        'rules' => [
          // ...
          '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
        ],
    ],

文档明确说不要在路径中包含子文件夹。

注意:具有服务器名称的规则不应在其模式中包含入口脚本的子文件夹。例如,如果应用程序位于http://www.example.com/sandbox/blog 下,那么您应该使用模式http://www.example.com/posts 而不是http://www.example.com/sandbox/blog/posts。这将允许您的应用程序部署在任何目录下,而无需更改您的应用程序代码。

我必须明确列出每条路线吗?我试图给出一个明确的路线

'shopping/search' => 'shopping/search',

但这并没有帮助。

【问题讨论】:

    标签: php yii url-routing yii2


    【解决方案1】:

    试试这个

        'urlManager' => [
                'class' => 'yii\web\UrlManager',
                'enablePrettyUrl' => true,
                'showScriptName' => 'false'
        ],
    

    【讨论】:

      【解决方案2】:

      这是因为 Apache。没有指向index.php,Apache 不知道将请求发送到哪里,并且是给出错误的那个。这将默认为index.php

      # For pretty URLs
      RewriteEngine on
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . index.php
      

      https://komarashettynageshrao.wordpress.com/2010/02/04/pretty-urls-in-yii/

      【讨论】:

      • 当然可以。子文件夹没有限制,你提到的引用适用于带有服务器名称的规则。
      猜你喜欢
      • 2017-02-08
      • 2013-12-13
      • 2019-06-16
      • 1970-01-01
      • 2012-05-26
      • 2019-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多