我正在尝试从URL中删除index.php而不破坏Magento管理面板。我们正在尝试减少SEO“重复内容”,因此如果网址包含index.php,我们正在寻求301重定向...除非它位于管理区域。
示例:
(domain)/index.php - >重定向到(域)
(domain)/index.php/category-one/ - > (域)/类别酮/
(domain)/index.php/admin/report - >不要重定向
我的工作除了/ admin / bit
if ($request_uri ~ .*.index\.php(.*)) {
return 301 $1;
}
NGINX不允许使用嵌套的IF
语句。
非常感谢任何帮助。谢谢
答案 0 :(得分:0)
IfIsEvil,请考虑使用重写:
rewrite /index\.php(?:$|/((?!admin(?:/|$)).*)) /$1 permanent;
它将删除index.php,除非它后跟/ admin,但仅当“admin”位于url的末尾或后跟/时。正则表达式有点臃肿,但它会做正确的事情并重定向像“管理”这样的单词,并且不会在网址中引入任何额外的斜杠。