0

私は人々に長い紹介URLを与える友達紹介モジュールを持っています

人々が入力しやすいように短くしたいのですが、.htaccessでそれを行う方法を理解できます

以下は私の .htaccess の書き換えセクションです

リダイレクトしたい

/ap/ * /awardpoints/index/goReferral/referrer/ へ ( ** は顧客ID)

私は試した:

RewriteRule ^ap/([0-9]+)$ /awardpoints/index/goReferral/referrer/$1 [R]

しかし、それは機能しません

<IfModule mod_rewrite.c>

############################################
## enable rewrites

Options +FollowSymLinks
RewriteEngine on

############################################
## 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]


############################################
## always send 404 on missing files in these folders

RewriteCond %{REQUEST_URI} !^/(media|skin|js)/

############################################
## 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>
4

1 に答える 1

0

これを達成するためにmagentoの内部URL書き換え管理を使用するか、これを試すことができます

RewriteRule ^ap/([^/\.]+)/?$ /awardpoints/index/goReferral/referrer/$1 [L]
RewriteRule .* index.php [L]

以下はhttp://www.workingwith.me.uk/articles/scripting/mod_rewriteからの (あなたの URL に変更された) コピー & ペーストです。

^ap/ 要求されたページが page/ で始まるかどうかを確認します。そうでない場合、このルールは無視されます。

([^/.]+) ここで、括弧で囲まれていることは、一致したものはすべて RewriteRule によって記憶されることを意味します。括弧内には、「スラッシュまたはピリオド以外の文字を 1 つ以上入力してください」と表示されます。ここで見つかったものは何でもキャプチャされ、記憶されます。

/?$ マッチした後に見つかったものがスラッシュの可能性だけで、それ以外のものがないことを確認します。それ以外が見つかった場合、この RewriteRule は無視されます。

/awardpoints/index/goReferral/referrer/ Apache によって読み込まれる実際のページ。$1 は魔法のように、以前にキャプチャされたテキストに置き換えられます。

[L] これが成功した場合、これ以上 RewriteRules を処理しないように Apache に指示します。

于 2012-04-09T10:03:31.903 に答える