довольно url не работает


Ниже мой main.php

 '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>',               
                    ],
        ],

Я включил довольно url (я думаю), я получаю много 404-х, как

192.168.1.3/~user/urshow/frontend/web/movies/movies_all это было бы прекрасно работать, если бы это было так 192.168.1.3/~user/urshow/frontend/web/index.php?r=movies/movies_all и никакие ссылки не работают, которые работали идеально раньше.

5 3

5 ответов:

Попробуйте это... создайте .htaccess файл в корневой папке и добавьте следующий код

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php)
RewriteRule ^(.+)$ index.php?$1 [PT,L,QSA]

Может помочь вам..

Я думаю, что это сработает. . .

192.168.1.3/~user/urshow/frontend/web/index.php/movies/movies_all

Поместите этот код в common/config/main.php

'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>',               
                ],
    ],

Создайте a .файл 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

Теперь в вашей паутине.php добавьте в раздел Компоненты следующее:

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

Это определенно сработает.

Мой .htacess файл, который находится в веб-папке моего проекта

RewriteEngine on
RewriteBase /~user/urshow/frontend/web/
# 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

Мой главный.php-файл внутри config

 'urlManager' => [
        'class' => 'yii\web\UrlManager',
        'enablePrettyUrl' => true,
        'showScriptName' => false,
         'rules' => array(
            '<controller:\w+>/<id:\d+>' => '<controller>/view',
            '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
            '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
    ),
    ],
Это сработало для меня .

Добавьте ниже оператор на конфигурации маршрутизатора, чтобы сделать html5 истинным.

$locationProvider.html5Mode({
        enabled: true,
        requireBase: false
    });

Затем добавьте настройки в интернете.config

  <system.webServer>
    <rewrite>
      <rules>
        <clear />
        <rule name="AngularJS" enabled="true" stopProcessing="true">
          <match url=".*" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
            <add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
          </conditions>
          <action type="Rewrite" url="/index.html" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>