Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Yii2 remove index.php from url

Tags:

php

yii

yii2

When I set the option in Yii to remove index.php from the URL I get a 404 error and this error in the error logs File does not exist: /var/live/var. In my browser I get this error The requested URL /var/decat/frontend/web/index.php was not found on this server. but the file is exactly in that location. What might explain that is that my document root is /var/live and decat is an alias as shown in the conf file.

This url works fine http://13.21.16.180/decat/index.php/site/login but when I remove index.php is when I get the error. I followed all the instructions to set it up in the conf file. I even tried through an .htaccess file. Here is the info from my conf file.

Alias /decat /var/decat/frontend/web

<Directory "/var/decat/frontend/web">
        # use mod_rewrite for pretty URL support
        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 
        Options -Indexes FollowSymLinks 
        AllowOverride All
        Order allow,deny 
        Allow from all 
</Directory>
like image 329
Michael St Clair Avatar asked Jun 01 '15 21:06

Michael St Clair


2 Answers

Add RewriteBase /decat/ after RewriteEngine on and restart apache.

like image 152
Viacheslav Avatar answered Nov 05 '22 14:11

Viacheslav


You should set Url Manager component like this:

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false, // Only considered when enablePrettyUrl is set to true
],

Official docs:

  • $enablePrettyUrl
  • $showScriptName
like image 6
arogachev Avatar answered Nov 05 '22 12:11

arogachev