Устранение проблем index.php Opencart - PullRequest
0 голосов
/ 26 января 2019

я удалил index.php из моих 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.

# 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 из моих URL. Но теперь функции сайта не работают.

Например, обновление цены в реальном времени не работает, добавление в корзину не работает. помогите мне пожалуйста, как мне заставить это работать?

Опция My Seo friendly url включена. Я пробовал много кодов для удаления index.php, только этот код работает, но он делает функции не работают. Я думаю, что код делает функции не работает, который работает с "index.php" Может быть, есть ли способ использовать удалить index.php только для URL, а не для функций?

Ответы [ 3 ]

0 голосов
/ 26 января 2019

.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]
0 голосов
/ 26 января 2019

для всех, кто испытывает проблемы при удалении index.php из opencart.используйте этот .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]
0 голосов
/ 26 января 2019

Чтобы использовать псевдоним URL, вам нужно запустить apache с включенным mod_rewrite.
В вашем Opencart каталоге переименовать htaccess.txt в .htaccess.
Opencart> Система> Настройки> Изменить магазин> Сервер> Использовать URL-адреса SEO> Да> Сохранить

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