首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >除非index.php包含/admin/,否则NGINX重定向url

问除非index.php包含/admin/,否则NGINX重定向url
EN

Stack Overflow用户
提问于 2015-01-16 22:56:37
回答 1查看 1.1K关注 0票数 0

我试图在不破坏Magento管理面板的情况下从网址删除index.php。我们试图减少搜索引擎优化“重复内容”,所以我们希望做一个301重定向,如果网址包含index.php…除非它在管理区。

示例:

(域)/index.php ->重定向至(域)

(域名)/index.php/category-one/ -> (域名)/category-one/

(域)/index.php/admin/report ->请勿重定向

除了/admin/位之外,我可以让它正常工作

代码语言:javascript
复制
if ($request_uri ~ .*.index\.php(.*)) {
    return 301 $1;  
    }

NGINX不允许嵌套的IF语句。

任何帮助都是非常感谢的。谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-01-17 06:58:21

IfIsEvil,所以可以考虑使用重写:

代码语言:javascript
复制
rewrite /index\.php(?:$|/((?!admin(?:/|$)).*)) /$1 permanent;

它将删除index.php,除非后面跟着/admin,但仅当"admin“在url末尾或后面跟着/时才会删除。正则表达式有点臃肿,但它会做正确的事情,重定向到像"administer“这样的单词,并且不会在url中引入任何额外的斜杠。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27986707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档