将index.php重定向到.htaccess中的root

时间:2013-03-18 11:44:39

标签: .htaccess magento mod-rewrite url-rewriting magento-1.7

我在共享托管服务器上安装了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上搜索但未找到成功。

3 个答案:

答案 0 :(得分:6)

您可以在index.php之后捕获该部分,并使用

重定向客户端
RewriteEngine on
RewriteRule ^index\.php/(.+)$ /$1 [R,L]
RewriteRule ^index\.php/?$ / [R,L]

这会将以index.php/开头的所有请求重定向到不包含index.php的网址。此外,index.phpindex.php/会重定向到主页。

<强>更新

要排除管理区域,您必须在第一条规则

之前插入额外的RewriteCond
RewriteCond %{REQUEST_URI} !/admin/

一起提供

RewriteEngine on
RewriteCond %{REQUEST_URI} !/admin/
RewriteRule ^index\.php/(.+)$ /$1 [R,L]
RewriteRule ^index\.php/?$ / [R,L]

答案 1 :(得分:3)

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

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

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

答案 2 :(得分:0)

使用此功能,您可以转义管理URL并将index.php重定向到没有index.php网址

RedirectMatch 301 /index.php/((?!admin).*)$1 http://www.example.com/$1