如何强制 Prestashop 1.4 尾部斜杠升级到 1.6


how to force prestashop 1.4 trailing slash for upgrade to 1.6

我有一个旧的Prestashop 1.4安装,页面没有尾部斜杠。示例:domain.com/category

我想升级到新版本的 Prestashop (1.6)此版本强制使用尾部斜杠(例如:domain.com/category/),理由充分。问题是我不想在任何搜索引擎中失去我的任何排名。

因此,我想做的是配置我当前 1.4 安装的 .htaccess,以便强制使用尾部斜杠并正常工作,因为现在它将导致 404。

这是.htaccess,即使在阅读了几篇有关重定向等的博客之后,我也不知道从哪里开始。谁能帮助我或提供建议?

<IfModule mod_rewrite.c>
# URL rewriting module activation
RewriteEngine on

#Force www:
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301,NC]
# URL rewriting rules
RewriteRule ^api/?(.*)$ /webservice/dispatcher.php?url=$1 [QSA,L]
RewriteRule ^([a-z0-9]+)'-([a-z0-9]+)('-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*'.jpg$ /img/p/$1-$2$3.jpg [L]
RewriteRule ^([0-9]+)'-([0-9]+)/[_a-zA-Z0-9-]*'.jpg$ /img/p/$1-$2.jpg [L]
RewriteRule ^([0-9]+)('-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*'.jpg$ /img/c/$1$2.jpg [L]
RewriteRule ^([0-9]+)'-[a-zA-Z0-9-]*'.html /product.php?id_product=$1 [QSA,L]
RewriteRule ^[a-zA-Z0-9-]*/([0-9]+)'-[a-zA-Z0-9-]*'.html /product.php?id_product=$1 [QSA,L]
RewriteRule ^([0-9]+)'-[a-zA-Z0-9-]*(/[a-zA-Z0-9-]*)+ /category.php?id_category=$1&noredirect=1 [QSA,L]
RewriteRule ^([0-9]+)'-[a-zA-Z0-9-]* /category.php?id_category=$1 [QSA,L]
RewriteRule ^([0-9]+)__([a-zA-Z0-9-]*) /supplier.php?id_supplier=$1 [QSA,L]
RewriteRule ^([0-9]+)_([a-zA-Z0-9-]*) /manufacturer.php?id_manufacturer=$1 [QSA,L]
RewriteRule ^content/([0-9]+)'-([a-zA-Z0-9-]*) /cms.php?id_cms=$1 [QSA,L]
RewriteRule ^content/category/([0-9]+)'-([a-zA-Z0-9-]*) /cms.php?id_cms_category=$1 [QSA,L]
RewriteRule ^lang-([a-z]{2})/([a-zA-Z0-9-]*)/([0-9]+)'-([a-zA-Z0-9-]*)'.html /product.php?id_product=$3&isolang=$1 [QSA,L]
RewriteRule ^lang-([a-z]{2})/([0-9]+)'-([a-zA-Z0-9-]*)'.html /product.php?id_product=$2&isolang=$1 [QSA,L]
RewriteRule ^lang-([a-z]{2})/([0-9]+)'-([a-zA-Z0-9-]*) /category.php?id_category=$2&isolang=$1 [QSA,L]
RewriteRule ^page-not-found$ /404.php [QSA,L]
RewriteRule ^address$ /address.php [QSA,L]
RewriteRule ^addresses$ /addresses.php [QSA,L]
RewriteRule ^authentication$ /authentication.php [QSA,L]
RewriteRule ^best-sales$ /best-sales.php [QSA,L]
RewriteRule ^cart$ /cart.php [QSA,L]
RewriteRule ^contact-us$ /contact-form.php [QSA,L]
RewriteRule ^discount$ /discount.php [QSA,L]
RewriteRule ^guest-tracking$ /guest-tracking.php [QSA,L]
RewriteRule ^order-history$ /history.php [QSA,L]
RewriteRule ^identity$ /identity.php [QSA,L]
RewriteRule ^manufacturers$ /manufacturer.php [QSA,L]
RewriteRule ^my-account$ /my-account.php [QSA,L]
RewriteRule ^new-products$ /new-products.php [QSA,L]
RewriteRule ^order$ /order.php [QSA,L]
RewriteRule ^order-follow$ /order-follow.php [QSA,L]
RewriteRule ^quick-order$ /order-opc.php [QSA,L]
RewriteRule ^order-slip$ /order-slip.php [QSA,L]
RewriteRule ^password-recovery$ /password.php [QSA,L]
RewriteRule ^prices-drop$ /prices-drop.php [QSA,L]
RewriteRule ^search$ /search.php [QSA,L]
RewriteRule ^sitemap$ /sitemap.php [QSA,L]
RewriteRule ^stores$ /stores.php [QSA,L]
RewriteRule ^supplier$ /supplier.php [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-]*)'.html /product.php?product_name_seo=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^[a-zA-Z0-9-]*/([a-zA-Z0-9-]*)'.html /product.php?product_name_seo=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^suplr/([a-zA-Z0-9-]*) /supplier.php?supplier_name=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^mfg/([a-zA-Z0-9-]*) /manufacturer.php?manufacturer_name=$1 [QSA,L]
RewriteRule ^content/category/([a-zA-Z0-9-]*) /cms.php?cms_category_name=$1 [QSA,L]
RewriteRule ^content/([a-zA-Z0-9-]*) /cms.php?cms_name=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-]*)(/[a-zA-Z0-9-]*)?/. /category.php?category_name_seo=$1&amp;noredirect=1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-]*) /category.php?category_name=$1 [QSA,L]
</IfModule>
# Catch 404 errors
ErrorDocument 404 /404.php
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType text/css "access plus 1 week"
    ExpiresByType text/javascript "access plus 1 week"
    ExpiresByType application/javascript "access plus 1 week"
    ExpiresByType application/x-javascript "access plus 1 week"
    ExpiresByType image/x-icon "access plus 1 year"
</IfModule>
FileETag INode MTime Size
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE text/javascript
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>

你可以试试这个文件:

<IfModule mod_rewrite.c>
# URL rewriting module activation
RewriteEngine on
RewriteBase /
#Force www:
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301,NC]
#Force trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteCond %{REQUEST_URI} !'.[^/]*$
RewriteRule ^(.*)$ /$1/ [L,R=301]
# URL rewriting rules
RewriteRule ^api/?(.*)$ /webservice/dispatcher.php?url=$1 [QSA,L]
RewriteRule ^([a-z0-9]+)'-([a-z0-9]+)('-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*'.jpg$ /img/p/$1-$2$3.jpg [L]
RewriteRule ^([0-9]+)'-([0-9]+)/[_a-zA-Z0-9-]*'.jpg$ /img/p/$1-$2.jpg [L]
RewriteRule ^([0-9]+)('-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*'.jpg$ /img/c/$1$2.jpg [L]
RewriteRule ^([0-9]+)'-[a-zA-Z0-9-]*'.html /product.php?id_product=$1 [QSA,L]
RewriteRule ^[a-zA-Z0-9-]*/([0-9]+)'-[a-zA-Z0-9-]*'.html /product.php?id_product=$1 [QSA,L]
RewriteRule ^([0-9]+)'-[a-zA-Z0-9-]*(/[a-zA-Z0-9-]*)+/ /category.php?id_category=$1&noredirect=1 [QSA,L]
RewriteRule ^([0-9]+)'-[a-zA-Z0-9-]*/ /category.php?id_category=$1 [QSA,L]
RewriteRule ^([0-9]+)__([a-zA-Z0-9-]*)/ /supplier.php?id_supplier=$1 [QSA,L]
RewriteRule ^([0-9]+)_([a-zA-Z0-9-]*)/ /manufacturer.php?id_manufacturer=$1 [QSA,L]
RewriteRule ^content/([0-9]+)'-([a-zA-Z0-9-]*)/ /cms.php?id_cms=$1 [QSA,L]
RewriteRule ^content/category/([0-9]+)'-([a-zA-Z0-9-]*)/ /cms.php?id_cms_category=$1 [QSA,L]
RewriteRule ^lang-([a-z]{2})/([a-zA-Z0-9-]*)/([0-9]+)'-([a-zA-Z0-9-]*)'.html /product.php?id_product=$3&isolang=$1 [QSA,L]
RewriteRule ^lang-([a-z]{2})/([0-9]+)'-([a-zA-Z0-9-]*)'.html /product.php?id_product=$2&isolang=$1 [QSA,L]
RewriteRule ^lang-([a-z]{2})/([0-9]+)'-([a-zA-Z0-9-]*)/ /category.php?id_category=$2&isolang=$1 [QSA,L]
RewriteRule ^page-not-found/$ /404.php [QSA,L]
RewriteRule ^address/$ /address.php [QSA,L]
RewriteRule ^addresses/$ /addresses.php [QSA,L]
RewriteRule ^authentication/$ /authentication.php [QSA,L]
RewriteRule ^best-sales/$ /best-sales.php [QSA,L]
RewriteRule ^cart/$ /cart.php [QSA,L]
RewriteRule ^contact-us/$ /contact-form.php [QSA,L]
RewriteRule ^discount/$ /discount.php [QSA,L]
RewriteRule ^guest-tracking/$ /guest-tracking.php [QSA,L]
RewriteRule ^order-history/$ /history.php [QSA,L]
RewriteRule ^identity/$ /identity.php [QSA,L]
RewriteRule ^manufacturers/$ /manufacturer.php [QSA,L]
RewriteRule ^my-account/$ /my-account.php [QSA,L]
RewriteRule ^new-products/$ /new-products.php [QSA,L]
RewriteRule ^order/$ /order.php [QSA,L]
RewriteRule ^order-follow/$ /order-follow.php [QSA,L]
RewriteRule ^quick-order/$ /order-opc.php [QSA,L]
RewriteRule ^order-slip/$ /order-slip.php [QSA,L]
RewriteRule ^password-recovery/$ /password.php [QSA,L]
RewriteRule ^prices-drop/$ /prices-drop.php [QSA,L]
RewriteRule ^search/$ /search.php [QSA,L]
RewriteRule ^sitemap/$ /sitemap.php [QSA,L]
RewriteRule ^stores/$ /stores.php [QSA,L]
RewriteRule ^supplier/$ /supplier.php [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-]*)'.html /product.php?product_name_seo=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^[a-zA-Z0-9-]*/([a-zA-Z0-9-]*)'.html /product.php?product_name_seo=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^suplr/([a-zA-Z0-9-]*)/ /supplier.php?supplier_name=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^mfg/([a-zA-Z0-9-]*)/ /manufacturer.php?manufacturer_name=$1 [QSA,L]
RewriteRule ^content/category/([a-zA-Z0-9-]*) /cms.php?cms_category_name=$1 [QSA,L]
RewriteRule ^content/([a-zA-Z0-9-]*) /cms.php?cms_name=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-]*)(/[a-zA-Z0-9-]*)?/./ /category.php?category_name_seo=$1&amp;noredirect=1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-]*)/ /category.php?category_name=$1 [QSA,L]
</IfModule>
# Catch 404 errors
ErrorDocument 404 /404.php
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType text/css "access plus 1 week"
    ExpiresByType text/javascript "access plus 1 week"
    ExpiresByType application/javascript "access plus 1 week"
    ExpiresByType application/x-javascript "access plus 1 week"
    ExpiresByType image/x-icon "access plus 1 year"
</IfModule>
FileETag INode MTime Size
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE text/javascript
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/x-javascript
</IfModule>