تالار گفتمان nCIS.ir

نسخه‌ی کامل: seo url در Yii2 advanced
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام
من طبق این آموزش رفتم جلو:
Option 2: The Hard Way
وقتی :
کد:
'enablePrettyUrl' => true,
'showScriptName' => false,
میذارم
کد:
Not Found

The requested URL /blog/frontend/web/site/index was not found on this server.
Apache/2.4.10 (Ubuntu) Server at localhost Port 80
اینجا به خوبی آموزش داده :
yii framework 2 seo

نتیجه :
frontend
advanced/post/1

backend
advanced/admin/site/login

در مرحله اول

در ریشه پروژه قرار میدیم.
کد:
# prevent directory listings
    Options -Indexes
    IndexIgnore */*
    
    # follow symbolic links
    Options FollowSymlinks
    RewriteEngine on
    RewriteRule ^admin(/.+)?$ backend/web/$1 [L,PT]
    RewriteRule ^admin(/)?$ backend/web/$1 [L,PT]
    RewriteRule ^(.+)?$ frontend/web/$1

مرحله دوم

در مسیر :
backend/web
frontend/web
در هردو کد .htaccess زیر را قرار میدیم.
کد:
RewriteEngine on
    
    # If a directory or a file exists, use the request directly
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # Otherwise forward the request to index.php
    RewriteRule . index.php

مرحله سوم

frontend/config/main.php

بیرون از components :
کد:
'homeUrl' => '/advanced',

و این را هم در داخل components کپی میکنیم:
کد:
'request' => [
            'baseUrl' => '/advanced',
        ],
        'urlManager' => [
             'enablePrettyUrl' => true,
             'showScriptName' => false,
             'rules' => [
                '<controller:\w+>/<id:\d+>' => '<controller>/view',
                '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
                '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
                ],
         ],

مرحله چهارم

backend/config/main.php

بیرون از components :
کد:
'homeUrl' => '/advanced/admin',

و این را هم در داخل components کپی میکنیم:
کد:
'request' => [
            'baseUrl' => '/advanced/admin',
        ],
        'urlManager' => [
             'enablePrettyUrl' => true,
             'showScriptName' => false,
             'rules' => [
                '<controller:\w+>/<id:\d+>' => '<controller>/view',
                '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
                '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
                ],
         ],

توجه: در داخل هردو پوشه main.php به جای advanced نام پروژه خودتان رو مینویسید.