【问题标题】:Magento Apache Mod Rewrite URLMagento Apache Mod 重写 URL
【发布时间】:2012-04-09 05:33:35
【问题描述】:

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

我想缩短它以使人们更容易输入,但可以弄清楚如何在 .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>

【问题讨论】:

  • 你的 RewriteBase 是什么?您的域的根目录或其他什么?

标签: apache mod-rewrite


【解决方案1】:

你可以使用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 记住。在括号内,它 说“我想要一个或多个不是正斜杠或 期间,请”。在这里发现的任何东西都将被捕获并 记住了。

/?$ 确保在刚刚找到的唯一内容之后 match 是一个可能的正斜杠,仅此而已。如果有什么 else 找到了,那么这个 RewriteRule 将被忽略。

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

[L] 告诉 Apache 不再处理 RewriteRules,如果这个是 成功。

【讨论】:

  • 它不能工作,我一直收到404,你说这可以通过magento的重写来做到吗?无需自己制作每个都可能吗?
  • 我设法让它工作:RewriteRule ^ap/([^/\.]+)$ mydomain.com/awardpoints/index/goReferral/referrer/$1 [L] 但是所有 css/js 都无法加载
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-27
  • 2011-01-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多