1

我刚刚推出了一个新版本的网站,我们将它们从静态文件移到了 ExpressionEngine。

我正在使用 Ellis 批准的 htaccess 方法从 URL 中删除 index.php,但我还需要从旧站点重定向一些 URL,并且我在重定向中得到了工件(因为缺少更好的术语)网址。

例如,我有这个重定向:

RedirectMatch 301 /2013/atlanta/ /event/atlanta-2013

实际上最终将您发送到这里:

http://aneventapart.com/event/atlanta-2013?/2013/atlanta/

幸运的是,页面仍然可以正确加载,但我宁愿没有那个查询字符串。

下面是从 ExpressionEngine URL 中删除 index.php 的片段:

RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

有什么帮助吗?

4

2 回答 2

1

无论如何都不是 .htaccess 方面的专家,但是,如果您希望 ExpressionEngine 社区的所有杰出人物都解决您的问题,请在此处发布,而不是在 stackexchange 上

话虽这么说,这是我的镜头。如果你想从

http://aneventapart.com/2013/atlanta/

http://aneventapart.com/event/atlanta-2013/

您的 301 规则应该出现在您的 .htaccess 中删除 index.php 的部分之前。我会写这样的规则:

RewriteRule ^2013/atlanta/ /event/atlanta-2013/ [R=301,L]

另外,恭喜重新设计!

于 2012-12-02T15:46:03.097 回答
0

除非您尝试匹配以下子页面:/2013/atlanta/something/ 例如,我会推荐以下内容

Redirect 301 /2013/atlanta/ http://aneventapart.com/event/atlanta-2013/

URI 到完整 URL 也是如此,这将在您看到的末尾删除基本的 URI 菊花链。

顺便说一句,这可以移动到 expressionengine.stackexchange.com 公共测试版网站吗?

于 2012-12-04T01:20:13.650 回答