Removing index.php from URL cause 404 in yii

apache, php, ubuntu, yii

Solution

If you are working on Linux(say ubuntu) then go to the path `/etc/apache2/sites-available/` there you will find a file named as `default`,

    <Directory /var/www/> <--- ***root directory***
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all <---- ***change this line***
    Order allow,deny
    allow from all
    </Directory>

and i think your problem will resolve.

Thanks.

Problem

The problem Initial problem: Hi I have a newly made Yii site where I want to remove the index.php from the URL. Example: "/index.php/site/index" should be "/site/index" I have been using this http://www.yiiframework.com/doc/guide/1.1/en/topics.url#hiding-x-23x guide but i only receive 404. I hope that you are able to point a mistake or help me debug this problem! Please let me know if I have left out any relevant information. OBS: The "home" page works as intended, other pages are broken. Status of the problem: It seems like it is an apache/ubuntu problem with mod_rewrite.so Answer After help from different people it all works now :D I had to install "rewrit" to get it running, i did that by writing Running a2enmod rewrit The below configuration of my system solved the problem for me, I hope this thread will help others in similar problems. My system ``` Server version: Apache/2.2.22 (Ubuntu) Server built: Nov 8 2012 21:37:45 ``` Apache httpd.conf ``` <Directory "/var/www/MY_SITE/FOLDER_CONTAINING_YII/"> AllowOverride All #... </Directory> LoadModule rewrite_module modules/mod_rewrite.so ``` This is the entire content of the file Apache Error Log ``` File does not exist: /.../htdocs/site, referer: http://.../htdocs/index.php/site/index ``` I added the dots Restart Apache ``` kah@webaalborg:/etc/apache2/sites-available$ sudo service apache2 restart * Restarting web server apache2 [Mon Nov 26 20:16:35 2012] [warn] module rewrite_module is already loaded, skipping ... waiting [Mon Nov 26 20:16:36 2012] [warn] module rewrite_module is already loaded, skipping [ OK ] ``` /ect/apache2/available-sites/default ``` ... DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> <Directory /var/www/MY_SITE> Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny allow from all </Directory> ... ``` Yii Directory structure: - framework - htdocs - assets - css - .htaccess - index.php - index-test.php - themes - protected .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 ``` main.php config file ``` 'urlManager'=>array( 'urlFormat'=>'path', 'showScriptName'=>false, 'caseSensitive'=>false, 'rules'=>array( '<controller:\w+>/<id:\d+>'=>'<controller>/view', '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', ), ), ```

Original source

Related problems