2

我在共享托管服务器上安装了 Magento。我已经在 magento 管理面板中进行了所有必要的更改。所有网址都可以正常工作。但唯一的问题是我可以使用以下方式访问我在商店中的产品:

http://mydomain.com/category/product.html以及http://mydomain.com/index.php/category/product.html

所以我想知道如何摆脱 index.php。我想将包含 index.php 的 url 重定向到没有 index.php 的 url

在这里发布之前,我检查了 magento 论坛并在 stackoverflow 上进行了搜索,但没有成功。

4

3 回答 3

7

您可以捕获之后的部分index.php并使用重定向客户端

RewriteEngine on
RewriteRule ^index\.php/(.+)$ /$1 [R,L]
RewriteRule ^index\.php/?$ / [R,L]

这会将所有以开头的请求重定向index.php/到不带index.php. 此外index.php并被index.php/重定向到主页。

更新

RewriteCond要排除管理区域,您必须在第一条规则之前插入一个附加项

RewriteCond %{REQUEST_URI} !/admin/

一起给

RewriteEngine on
RewriteCond %{REQUEST_URI} !/admin/
RewriteRule ^index\.php/(.+)$ /$1 [R,L]
RewriteRule ^index\.php/?$ / [R,L]
于 2013-03-18T13:37:22.670 回答
4

如果你想从你网站上的所有链接中删除 index.php,这个解决方案实际上对我来说效果最好:

RedirectMatch 301 /index.php/(.*) http://www.yourdomain.com/$1

来源: http ://www.lionseo.com/blog/htaccess-redirect-301/

于 2013-11-15T21:48:12.457 回答
0

使用它,您可以转义管理 URL 并将 301 index.php 重定向到没有 index.php url

RedirectMatch 301 /index.php/((?!admin).*)$1 http://www.example.com/$1
于 2018-05-15T11:14:43.057 回答