2011-04-08 3 views
4

Je viens de migrer mon site d'asp à opencart. Dans .htaccess Je voudrais faire quelques redirect afin que mon client peut utiliser de nouveau l'ancien lien pour accéder.htaccess opencart redirect 301

intérieur .htaccess

redirect 301 /contact.asp http://www.example.com/index.php?route=information/contact_us 
redirect 301 /downloads.asp http://www.example.com/downloads 

Pour Contactez-nous qui fonctionnent parfaitement, mais, pour l'url téléchargements, cela n'a pas fonctionné correctement. quand j'accède à http://www.example.com/downloads.asp il redirigera vers http://www.example.com/downloads?_route_=downloads.asp et Opencart montre c'est la page introuvable. Pour le http://www.example.com/downloads, nous avons défini une URL conviviale pour le référencement dans le système principal.

Nous accéder à

http://www.example.com/information/downloads

http://www.example.com/downloads

mais nous pas en mesure d'accéder avec lien normale

http://www.example.com/index.php?route=information/downloads

Le folowing est mon plein .htaccess

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

# SEO URL Settings 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] 

redirect 301 /contact.asp http://www.example.com/index.php?route=information/contact_us 
redirect 301 /downloads.asp http://www.example.com/downloads 

============ UN AUTRE TEST ========================

J'ai fait quelques testant sur ceci sur mon localhost j'ai découvert que c'est un résultat intéressant de quitter. Cependant, mon problème n'a toujours pas résolu.

Je cours le.htaccess de http://localhost/example et http://example (répertoire virtuel ajouté)

Pour http://localhost/example

redirect 301 /example/downloads.asp http://localhost/example/downloads/ 

et

Pour http://example

redirect 301 /downloads.asp http://example/downloads/ 

Alors j'ai essayé, redirect à ma vie lien version, depuis localhost (http: // exemple)

redirect 301 /downloads.asp http://www.example.com/downloads/ 

J'accès à http://example/downloads.asp

Le navigateur redirect me

http://www.example.com/downloads?route=downloads.asp

noter

En version live, je ne l'ai pas ajouté de code de redirection [TRES SURE POUR ]

Mais dans la version en direct, je suis d'accéder directement à entrer

http://www.example.com/downloads

Je ne sais pas pourquoi de localhost rediriger 301 vivre la version sortira

http://www.example.com/downloads?route=downloads.asp

Toute idée?

Répondre

4

solution trouvée: .htaccess redirect 301 travailler avec opencart v1.5.4.1

Code supplémentaire nécessaire pour ... (et les crédits de ce correctif): https://github.com/opencart/opencart/pull/142 ... remplacer le contenu de : - catalogue/contrôleur/common/seo_url.php - système/bibliothèque/url.php

Redirect fin: RewriteRule Contacto http: .... com/index.php route = informations/contact [R = 301, L]

Redirect ne fonctionne pas: redirect 301 Contacto http: .... com/index.php route = informations/contact

Vérifié.

+0

J'ai remplacé 'seo_url.php' et' url.php' - mais qu'est-ce que j'ai besoin d'écrire dans 'htaccess'? –

3

Placez-le devant le routeur. Ajoutez également $ après .asp et^devant.

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

# SEO URL Settings 
RewriteEngine On 

redirect 301 ^contact.asp$ http://www.example.com/index.php?route=information/contact_us 
redirect 301 ^downloads.asp$ http://www.example.com/downloads 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] 

Pourquoi ne vous redirige pas contact /information/contact_us au lieu de index.php?route=information/contact_us?

+0

parce que dans opencart, il n'y a pas d'option pour ce que vous avez une idée pour résoudre ce problème. ? – Shiro

+0

J'ai changé pour votre code, quand j'accède à http://www.example.com/downloads.asp, il n'a pas redirigé dessus, il rappelle toujours sur le même lien http://www.example.com/ downloads.asp Peut-être que vous voulez essayer de télécharger opencart et le tester – Shiro

+0

J'ai testé dans mon localhost avec rediriger 301/example/downloads.asp http: // localhost/exemple/téléchargements il fonctionne parfaitement, mais pas en version live. – Shiro

0

Vous pouvez essayer un "?" à la fin de l'URL de redirection si elle est présente pas là comme url 2 (cela a fonctionné pour moi):

redirect 301 /contact.asp http://www.example.com/index.php?route=information/contact_us 
redirect 301 /downloads.asp http://www.example.com/downloads?