2017-10-05 4 views
0

Je suis en train de faire un simple redirection 301htaccess Rediriger 301

De

http://my-site.com/old-cat/old-sub-cat/ARTICLE_NAME

.htaccess

RewriteCond% {REQUEST_URI}^/old-cat/old-sub-cat/(.*)$

RewriteRule^(. *) $/New-cat /% 1 [R = 301, L]

Mais en conséquence je reçois une nouvelle catégorie sans une barre oblique

http://my-site.com/new-catARTICLE_NAME

où j'ai fait une erreur?

+0

Etes-vous sûr qu'il n'y a pas de redirection supplémentaire entre les deux? Aussi, pourquoi utilisez-vous RewriteCond pour cela au lieu de 'RewriteRule ^/old-dat/ancien-sub-cat /(.*)$/new-cat/$ 1 [R = 301, L]' – janh

+0

Il n'y a pas de redirection supplémentaire et RewriteRule ^/old-dat/ancien-sous-chat /(.*)$/new-cat/$ 1 [R = 301, L] return 500 erreur ... Et je veux juste obtenir le slash manquant :) – oshaman

+0

le '/ new-cat /% 1' avec un'% 'est une erreur lors de l'écriture de la question ou est-ce que vous l'avez dans .htaccess? Parce que la méthode correcte est avec '$', voir le commentaire @ janh2. –

Répondre

0

Cela devrait également travailler pour vous, vous n'avez pas besoin d'un RewriteCond du tout:

RewriteRule ^/?old-cat/old-sub-cat/(.*)$ /new-cat/$1 [R=301,L] 

Mais votre code est également juste.

Browser ont tendance à se rappeler 301 réoriente donc il se pourrait que cela ne vient pas de votre serveur à tous, mais à partir de votre navigateur

Il se pourrait aussi que d'autres peut-être .htaccess dans un autre répertoire ou la configuration du serveur ou l'application elle-même fait un peu de redirection.

+0

il y a une plus .htaccess dans le sous-répertoire RewriteEngine on # Redirect Traili ng Slashes si ce n'est pas un dossier ... RewriteCond% {REQUEST_FILENAME}!-d RewriteRule^(. *)/$/$ 1 [L, R = 301] # poignée Front Controller ... RewriteCond% {REQUEST_FILENAME}! -d RewriteCond% {REQUEST_FILENAME}! -f RewriteRule^index .php [L] # En-tête d'autorisation de gestion RewriteCond% {HTTP: Authorization}. RewriteRule * -. [E = HTTP_AUTHORIZATION:% {HTTP: Autorisation}] oshaman

+0

Je me sens complètement stupide, vous êtes tout à fait raison - je viens oublié de vider le cache. Les deux options fonctionnent correctement. Merci beaucoup. – oshaman

+0

Cela m'arrive aussi parfois, et je l'oublie aussi en regardant le code et je ne trouve rien ;-) – Webdesigner