消除index.php问题Opencart

时间:2019-01-25 21:53:49

标签: opencart

我从网址中删除了index.php。但是现在站点功能不起作用。

例如实时价格更新不起作用,添加到购物车不起作用。 请帮帮我,我如何使它工作?

# 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]

你好

我从网址中删除了index.php。但是现在站点功能不起作用。

例如实时价格更新不起作用,添加到购物车不起作用。请帮帮我,我如何使它工作?

“我的Seo友好网址”选项已启用。我尝试了许多删除index.php的代码,只有此代码有效,但它使功能无法正常工作。我猜代码使“ fucntions”无法正常运行,而该功能无法与“ index.php”一起运行。也许有一种方法仅对网址而非功能使用remove index.php吗?

3 个答案:

答案 0 :(得分:0)

要使用URL别名,您需要在启用mod_rewrite的情况下运行 apache
在您的 Opencart 目录中,将htaccess.txt重命名为.htaccess
Opencart>系统>设置>编辑商店>服务器>使用SEO URL>是>保存

# 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]

答案 1 :(得分:0)

此默认.htaccess不能解决问题。但是我已经通过

修复了它

替换

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

代替此

   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 :(得分:0)

对于从opencart删除index.php时遇到的所有问题。使用这个.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

将http强制为https

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

如果您使用yourwebsite.com而不是www.yourwebsite.com,请将www.yourwebsite.com重定向到yourwebsite.com

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