Regex magento index.php单主URL的htaccess重写规则?

Regex magento index.php单主URL的htaccess重写规则?,regex,apache,.htaccess,magento,mod-rewrite,Regex,Apache,.htaccess,Magento,Mod Rewrite,默认情况下,Magento会侦听3个可能的url以访问主页: 谷歌不喜欢这种行为,我正试图为搜索引擎优化我的店铺。因此,我转到Magento的.htaccess文件并尝试编辑正确的规则。然而,这似乎不起作用 我尝试将第175行:RewriteRule.*index.php[L]替换为: RewriteCond %{REQUEST_URI} !^/index.php/admin($|/) RewriteRule ^index.php(/(.*))? /$2 [R=301,QSA,L] 这是

默认情况下,Magento会侦听3个可能的url以访问主页:

  • 谷歌不喜欢这种行为,我正试图为搜索引擎优化我的店铺。因此,我转到Magento的.htaccess文件并尝试编辑正确的规则。然而,这似乎不起作用

    我尝试将第175行:
    RewriteRule.*index.php[L]
    替换为:

    RewriteCond %{REQUEST_URI} !^/index.php/admin($|/)
    RewriteRule ^index.php(/(.*))? /$2 [R=301,QSA,L]
    
    这是因为我突然想到magento的后端不喜欢这样,我正在从URL中删除index.php。它适用于根URL。但问题是我无法查看任何其他页面。全部重定向到主页

    有人有什么建议吗?我也想知道为什么magento会这么做。我不知道这怎么会有用


    注意:我想知道我运行的是否重要。

    将此规则添加为magento中的第一条规则。htaccess:

    RewriteCond %{THE_REQUEST} /index\.php [NC]
    RewriteRule ^(.*?)index\.php/?$ /$1 [L,R=301,NC,NE]
    

    这将从原始URL(而不是从重写的URI)中删除
    index.php

    因此保留第175行:
    RewriteRule.*index.php[L]
    不变?是的,保持不变。只需确保上述规则是第一条规则。这适用于index.php部分,但如果我添加最后一个斜杠,则不会更改:
    https://www.shop.nl/index.php/
    Nice 301重定向,后端也可以正常工作,谢谢。