yii2:如何在使用模块和GET参数时配置Url管理器?

时间:2015-08-31 03:27:33

标签: yii2

我正在尝试在我的模块中配置Url,但是在访问以下Url时遇到404错误。这是我的产品页面网址示例:

http://localhost/jambomall/web/products/products/details-product?deal_key=nvx3FtQf&url_title=3-Jojo-Cat-ponted-heels

我希望Url经理能够证明这一点:

http://localhost/jambomall/web/products/details-product/nvx3FtQf/3-Jojo-Cat-ponted-heels

如何配置我的Url管理器才能显示此内容?这不适合我。

'products/<deal_key:\w+>/<url_title:\w+>' => 'products/products/details-products'

这是我的web.php

        'urlManager' => [
        'class' => 'yii\web\UrlManager',
        'showScriptName' => false,
        'enablePrettyUrl' => true,
        'rules' => [
            'products/<deal_key:\w+>/<url_title:\w+>' => 'products/products/details-product',
        ],
    ],

和我的网络文件夹中的.htaccess

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 

2 个答案:

答案 0 :(得分:1)

你的.htaccess似乎没问题。请参阅以下配置。这可能适合你。

'urlManager' => [
    'class' => 'yii\web\UrlManager',
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => array(
         '' => 'site/index',
         'module/<module:\w+>/<controller:\w+>/<action:\w+>' => '<module>/<controller>/<action>',
         '<controller:\w+>/<id:\d+>' => '<controller>/view',
         '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
         '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
    ),
],

答案 1 :(得分:0)

您在web.php文件中添加以下代码...

'components' => [
    'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
    ],
 ],

.htaccess文件夹中添加web文件以获取以下代码....

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