web-dev-qa-db-ja.com

.htaccessを使用してエイリアスパスを設定する

このようなパスがあります

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

正しいコンテンツを取得します。また、以下のURLにアクセスしたときにも同じコンテンツを受け取りたいです。

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

注意:

  • Host.ip/nl/-静的
  • producten-en-diensten/abonnementen-met-gsm-動的、変更されます
  • /businessキーワードはnlの隣に追加されます

この投稿で指定されたルールを参照しました: 。htaccessファイルを使用して、短いエイリアスURLを長いURLに作成するにはどうすればよいですか?

しかし、成功しません

@Magento URL書き換え管理はこれを正確に行いますが、.htaccessを使用してこれを達成しようとしています。

私はこのように試しましたが、リダイレクトしています

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

ここに私の.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

ルールからR=302,を削除するだけです。 Rは「リダイレクト」を意味し、302は「一時タイプ」を意味します。

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

ルールに関する詳細情報:

  • Lは「最後」を意味します(さらに書き換えルールを適用しないでください)
  • NCは「大文字と小文字を区別しない」ことを意味します(大文字と小文字は区別されないため、/NL/BUSINESSも一致します。これはあなたが望むものではないかもしれません)
1