2016-04-22 109 views
2

我有一箇舊的Prestashop 1.4安裝,頁面沒有結尾斜槓。 示例:domain.com/category如何強制prestashop 1.4從斜線升級到1.6

我想升級到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> 

回答

1

你可以試試這個文件:

<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> 
+0

感謝弗洛裏安但這會導致ERR_TOO_MANY_REDIRECTS所以它可能保持這種變化循環。 – Beekhouse

+0

你可能會再看一次嗎?我仍然無法工作。提前致謝。 – Beekhouse