web-dev-qa-db-fra.com

Définir le chemin d'alias à l'aide de .htaccess

J'ai un chemin comme ça

http://Host.ip/nl/producten-en-diensten/abonnementen-met-gsm

qui va récupérer le contenu correct et je veux aussi recevoir le même contenu quand j'accède à l'URL ci-dessous aussi

http://Host.ip/nl/business/producten-en-diensten/abonnementen-met-gsm

Remarque:

  • Host.ip/nl/ - Statique
  • producten-en-diensten/abonnementen-met-gsm - Dynamique, ça va changer
  • Le mot clé /business sera ajouté à côté de nl

J'ai fait référence à la règle donnée dans cet article: Comment puis-je créer une URL d'alias plus courte vers une URL plus longue en utilisant un fichier .htaccess?

mais pas de succès

C'est exactement ce que fait la gestion de la réécriture d'URL @Magento, mais j'essaie d'y parvenir en utilisant .htaccess.

J'ai essayé comme ça mais ça redirige

RewriteRule (^|.*?/)nl/business/(.*)$ /$1nl/$2 [R=302,L,NC]

Voici mon tag de réécriture en .htaccess

<IfModule mod_rewrite.c>

############################################
## Enable rewrites

    Options +FollowSymLinks
    RewriteEngine on

## Business Rewrite
    RewriteRule (^|.*?/)nl/business/(.*)$ /$1nl/$2 [NC]

############################################
## You can put here your magento root folder
## path relative to web root

    #RewriteBase /magento/

############################################
## Workaround for HTTP authorization
## in CGI environment

    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

############################################
## TRACE and TRACK HTTP methods disabled to prevent XSS attacks

    RewriteCond %{REQUEST_METHOD} ^TRAC[EK]
    RewriteRule .* - [L,R=405]

############################################
## Never rewrite for existing files, directories and links

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l

############################################
## Rewrite everything else to index.php

    RewriteRule .* index.php [L]

</IfModule>
3
prasanna

Supprimez simplement le R=302, de votre règle. R signifie "redirection" et 302 signifie "type temporaire":

RewriteRule (^|.*?/)nl/business/(.*)$ /$1nl/$2 [L,NC]

Pour plus d'informations sur votre règle:

  • L signifie "dernier" (n'applique plus de règles de réécriture)
  • NC signifie "pas de cas" (insensible à la casse, donc /NL/BUSINESS correspondra également - ce n'est peut-être pas ce que vous voulez)
1