0

我有一个推荐朋友模块,它为人们提供了一个长推荐网址

我想缩短它以使人们更容易输入,但可以弄清楚如何在 .htaccess 中完成它

下面是我的 .htaccess 的重写部分

我想重定向

/ap/ * to /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复制和粘贴

^ap/ 查看请求的页面是否以 page/ 开头。如果没有,此规则将被忽略。

([^/.]+) 这里,括号表示任何匹配的内容都将被 RewriteRule 记住。在括号内,它说“我想要一个或多个不是正斜杠或句点的字符,请”。在这里发现的任何东西都会被捕获和记住。

/?$ 确保在刚刚匹配的内容之后找到的唯一内容是可能的正斜杠,而不是其他内容。如果发现任何其他内容,则此 RewriteRule 将被忽略。

/awardpoints/index/goReferral/referrer/ Apache 将加载的实际页面。$1 神奇地替换为之前捕获的文本。

[L] 如果 RewriteRules 成功,则告诉 Apache 不再处理任何 RewriteRules。

于 2012-04-09T10:03:31.903 回答