All of my URLs on my Magento installation require index.php in them, like:
http://example.com/index.php/admin/
http://example.com/index.php/customer/account/login/
The problem is that the system by default links to URLs like
http://example.com/admin/
http://example.com/customer/account/login/
Which look prettier anyway. I assume this is a rewrite issue in .htaccess, but as tinkering with that in the past has given me 500s, I'd like to ask you guys first.
Changing the SEO settings, flushing the configuration cache, and reindexing URLs did not work as suggested here.
This question is related to
.htaccess
magento
url-rewriting
e-commerce
Follow the below steps it will helps you.
step 1: Go to to your site root folder and you can find the .htaccess
file there. Open it with a text editor and find the line #RewriteBase /magento/
. Just replace it with #RewriteBase /
take out just the 'magento/'
step 2: Then go to your admin panel and enable the Rewrites(set yes for Use Web Server Rewrites). You can find it at System->Configuration->Web->Search Engine Optimization.
step 3: Then go to Cache management page (system cache management ) and refresh your cache and refresh to check the site.
I tried everything on the post but nothing had worked. I then changed the .htaccess snippet that ErJab put up to read:
RewriteRule ^(.*)$ 'folder_name'/index.php/$1 [L]
The above line fixed it for me. where *folder_name* is the magento root folder.
Hope this helps!
Mainly If you are using Linux Based system Like 'Ubuntu' and this is only suggested for localhost user not for the server.
Follow all the steps mentioned in the previous answers. +
Check in Apache configuration for it. (AllowOverride All) If AllowOverride value is none then change it to All and restart apache again.
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Let me know if this step help anyone. As it can save you time if you find it earlier.
I am adding the exact lines from my htaccess file in localhost. for your reference
Around line number 110
<IfModule mod_rewrite.c>
############################################
## enable rewrites
Options +FollowSymLinks
RewriteEngine on
############################################
## you can put here your magento root folder
## path relative to web root
#RewriteBase /
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Images are for some user who understand easily from image the from the text:
Hi I'm late to the party.. just wanted to point out that the instructions from http://davidtsadler.com/archives/2012/06/03/how-to-install-magento-on-ubuntu/ were really useful.
I had Ubuntu server installed with Apache, MySql and Php so I thought I could jump to the heading Creating the directory from which Magento will be served from and I reached the same problem as the OP, i.e. I had 'index.php' needed in all the URLs (or I would get 404 not found). I then went back to Installing and configuring the Apache HTTP server and after restarting apache it works perfectly.
For reference, I was missing:
sudo bash -c "cat >> /etc/apache2/conf.d/servername.conf <<EOF
ServerName localhost
EOF"
... and
sudo a2enmod rewrite
sudo service apache2 restart
Hope this helps
If the other solutions don't work for you, try this:
Step 1: (if your installation is in webroot)
Replace
#RewriteBase /magento/
with
RewriteBase /
Step 2:
Add following lines (inclusive exclude admin because backend needs index.php internally)
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://www.yourdomain.com/$1 [R=301,L]
RewriteRule ^index.php/(admin|user)($|/) - [L]
RewriteRule ^index.php/(.*) $1 [R=301,QSA,L]
right after
RewriteRule .* index.php [L]
This works for me
In case it is still not working, double check Magento configuration: System->Configuration->Web->Search Engine Optimization. Rewrites must be enabled.
You have to enable mod_rewrite in apache to make clean urls to work
if mod_rewrite is not in phpinfo you have to install it by
sudo a2enmod rewrite
sudo apache2ctl -l
You need to replace the occurrence of AllowOverride none
to AllowOverride all
( in /etc/apache2/sites-enabled/000-default)
Restart Apache
sudo service apache2 restart
In Magento’s admin go to System > Configuration > Web > search engine Optimization
and change “Use Web Server Rewrites
” to Yes
How about this in your .htaccess:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Source: Stackoverflow.com