skip to Main Content

i removed index.php from my urls. But now site functions doesn’t work.

For example live price update not working, adding to cart not working.
help me please, how can i make it work?

# 1.To use URL Alias you need to be running apache with mod_rewrite enabled. 

# 2. In your opencart directory rename htaccess.txt to .htaccess.

# For any support issues please visit: http://www.opencart.com

Options +FollowSymlinks

# Prevent Directoy listing 
Options -Indexes

# Prevent Direct Access to files
<FilesMatch ".(tpl|ini|log)">
Order deny,allow
Deny from all
</FilesMatch>

# SEO URL Settings

# If your opencart installation does not run on the main web folder 
make sure you folder it does run in ie. / becomes /shop/ 

RewriteEngine On
RewriteBase /

RewriteEngine On
RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^download/(.*) /index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]



RewriteRule ^(adminpage)($|/) - [L]
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://mywebsite.com/$1 [R=301,L]
RewriteRule ^index.php/(admin|user)($|/) - [L]
 RewriteRule ^index.php/(.*) $1 [R=301,QSA,L]


### Additional Settings that may need to be enabled for some servers 
### Uncomment the commands by removing the # sign in front of it.
### If you get an "Internal Server Error 500" after enabling any of 
the following settings, restore the # as this means your host 
doesn't allow that.

# 1. If your cart only allows you to add one item at a time, it is 
possible register_globals is on. This may work to disable it:
# php_flag register_globals off

# 2. If your cart has magic quotes enabled, This may work to disable 
it:
# php_flag magic_quotes_gpc Off

# 3. Set max upload file size. Most hosts will limit this and not 
allow it to be overridden but you can try
# php_value upload_max_filesize 999M

# 4. set max post size. uncomment this line if you have a lot of 
product options or are getting errors where forms are not saving all 
fields
# php_value post_max_size 999M

# 5. set max time script can take. uncomment this line if you have a 
lot of product options or are getting errors where forms are not 
saving all fields
# php_value max_execution_time 200

# 6. set max time for input to be recieved. Uncomment this line if 
you have a lot of product options or are getting errors where forms 
are 
not saving all fields
# php_value max_input_time 200

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.mywebsite.com [NC]
RewriteRule ^(.*)$ http://www.mywebsite.com/$1 [L,R=301]

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} store 
RewriteRule ^(.*)$ https://mywebsite.com/store/$1 [R,L]

Hello,

i removed index.php from my urls. But now site functions doesn’t work.

For example live price update not working, adding to cart not working. help me please, how can i make it work?

My Seo friendly url option is enabled. i tried many codes for removing index.php only this code is working but it makes functions not work. I guess the code makes fucntions doesn’t work which is running with “index.php” Maybe is there a way to use remove index.php only for url not for functions?

3

Answers


  1. Chosen as BEST ANSWER

    This default .htaccess doesn't solve the issue. however i have fixed it by

    replacing

       RewriteCond %{THE_REQUEST} ^GET.*index.php [NC]
       RewriteCond %{REQUEST_URI} !/system/.* [NC]
       RewriteRule (.*?)index.php/*(.*) /$1$2 [R=301,NE,L]
    

    instead of this

       RewriteRule ^(adminpage)($|/) - [L]
       RewriteCond %{THE_REQUEST} ^.*/index.php
       RewriteRule ^(.*)index.php$ http://mywebsite.com/$1 [R=301,L]
       RewriteRule ^index.php/(admin|user)($|/) - [L]
       RewriteRule ^index.php/(.*) $1 [R=301,QSA,L]
    

  2. To use URL Alias you need to be running apache with mod_rewrite enabled.
    In your Opencart directory rename htaccess.txt to .htaccess.
    Opencart > System > Settings > Edit Store > Server > Use SEO URLs > Yes > Save

    # 1.To use URL Alias you need to be running apache with mod_rewrite enabled.
    # 2. In your opencart directory rename htaccess.txt to .htaccess.
    
    <IfModule mod_rewrite.c>
    # Redirect all traffic to https:// non www
    RewriteEngine on
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} ^www. [NC]
    RewriteRule (.*) https://example.com%{REQUEST_URI} [R=301,L]
    </IfModule>
    
    Options +SymLinksIfOwnerMatch
    
    # Prevent Directoy listing
    Options -Indexes
    
    # Prevent Direct Access to files
    <FilesMatch "(?i)((.tpl|.twig|.ini|.log|(?<!robots).txt))">
     Require all denied
    ## For apache 2.2 and older, replace "Require all denied" with these two lines:
    # Order deny,allow
    # Deny from all
    </FilesMatch>
    
    # SEO URL Settings
    RewriteEngine On
    
    # If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/
    RewriteBase /
    RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]
    RewriteRule ^googlebase.xml$ index.php?route=extension/feed/google_base [L]
    RewriteRule ^system/storage/(.*) index.php?route=error/not_found [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !.*.(ico|gif|jpg|jpeg|png|js|css)
    RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
    
    Login or Signup to reply.
  3. for all having problems when remove index.php from opencart . use this .htaccess

     # 1.To use URL Alias you need to be running apache with mod_rewrite enabled. 
    
     # 2. In your opencart directory rename htaccess.txt to .htaccess.
    
     # For any support issues please visit: http://www.opencart.com
    
     Options +FollowSymlinks
    
     # Prevent Directoy listing 
     Options -Indexes
    
     # Prevent Direct Access to files
     <FilesMatch ".(tpl|ini|log)">
     Order deny,allow
     Deny from all
     </FilesMatch>
    
     # SEO URL Settings
    
     # If your opencart installation does not run on the main web folder make sure 
     you folder it does run in ie. / becomes /shop/ 
    
     RewriteEngine On
     RewriteBase /
     RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
     RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
     RewriteRule ^download/(.*) /index.php?route=error/not_found [L]
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteCond %{REQUEST_URI} !.*.(ico|gif|jpg|jpeg|png|js|css)
     RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
    
     RewriteCond %{THE_REQUEST} ^GET.*index.php [NC]
     RewriteCond %{REQUEST_URI} !/system/.* [NC]
     RewriteRule (.*?)index.php/*(.*) /$1$2 [R=301,NE,L]
    
     ### Additional Settings that may need to be enabled for some servers 
     ### Uncomment the commands by removing the # sign in front of it.
     ### If you get an "Internal Server Error 500" after enabling any of the 
     following settings, restore the # as this means your host doesn't allow that.
    
     # 1. If your cart only allows you to add one item at a time, it is possible 
     register_globals is on. This may work to disable it:
     # php_flag register_globals off
    
     # 2. If your cart has magic quotes enabled, This may work to disable it:
     # php_flag magic_quotes_gpc Off
    
     # 3. Set max upload file size. Most hosts will limit this and not allow it to 
     be overridden but you can try
     # php_value upload_max_filesize 999M
    
     # 4. set max post size. uncomment this line if you have a lot of product 
     options or are getting errors where forms are not saving all fields
     # php_value post_max_size 999M
    
     # 5. set max time script can take. uncomment this line if you have a lot of 
     product options or are getting errors where forms are not saving all fields
     # php_value max_execution_time 200
    
     # 6. set max time for input to be recieved. Uncomment this line if you have a 
     lot of product options or are getting errors where forms are not saving all 
      fields
     # php_value max_input_time 200
    

    forcing http to https

     RewriteEngine On 
     RewriteCond %{SERVER_PORT} 80 
     RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
    

    if you use yourwebsite.com instead of http://www.yourwebsite.com, redirect http://www.yourwebsite.com to yourwebsite.com

     RewriteEngine On
     RewriteCond %{HTTP_HOST} ^www.yourwebsite.com [NC]
     RewriteRule ^(.*)$ http://yourwebsite.com/$1 [L,R=301]
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search