我在共享托管服务器上安装了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上搜索但未找到成功。
答案 0 :(得分:6)
您可以在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]
答案 1 :(得分:3)
如果你想从你网站上的所有链接中删除index.php,这个解决方案对我来说实际上是最好的:
RedirectMatch 301 /index.php/(.*) http://www.yourdomain.com/$1
答案 2 :(得分:0)
使用此功能,您可以转义管理URL并将index.php重定向到没有index.php网址
RedirectMatch 301 /index.php/((?!admin).*)$1 http://www.example.com/$1