如何使用.htaccess删除Magento 1.9中的index.php

如何使用.htaccess删除Magento 1.9中的index.php,.htaccess,magento,redirect,mod-rewrite,url-rewriting,.htaccess,Magento,Redirect,Mod Rewrite,Url Rewriting,我在我的Magento网站上有这样的URL,如和。我不需要这两个页面,我需要在.htaccess文件中正确重写它们。我已经尝试了在StackOverflow能找到的一切,但没有任何帮助。我使用adpanel在配置中配置了URL重写,使用了不同的解决方案,但我得到的最多的是执行这些重定向,但我的adpanel不会将任何更改写入网站数据库(我使用了此解决方案: RedirectMatch 301 ^/index.php/((?!admin).*) http://www.magento.store/$

我在我的Magento网站上有这样的URL,如和。我不需要这两个页面,我需要在.htaccess文件中正确重写它们。我已经尝试了在StackOverflow能找到的一切,但没有任何帮助。我使用adpanel在配置中配置了URL重写,使用了不同的解决方案,但我得到的最多的是执行这些重定向,但我的adpanel不会将任何更改写入网站数据库(我使用了此解决方案:

RedirectMatch 301 ^/index.php/((?!admin).*) http://www.magento.store/$1
在这种情况下,不可能改变adpanel中的任何内容

RewriteEngine on
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
也不要工作。据我所知,他们被忽略了。 我如何解决这个问题

这是我的.htaccess文件(关于mod_重写的部分):


选项+FollowSymLinks
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}!-f
重写cond%{REQUEST_FILENAME}!-d
重写规则。/index.php[L]
RewriteCond%{HTTP_HOST}^magento\.store$[NC]
重写规则^(.*)$http://www.magento.store/$1[L,R=301]
#重定向分页
RewriteCond%{QUERY_STRING}^p=1$
重写规则^(+)$http://www.magento.store/1美元?[R=301,L]
重写规则^pagename$http://www.magento.store/page-name [L,R=301]
#重写cond%{REQUEST_URI}!/admin/
#重写规则^index\.php/(.+)$/$1[R,L]
#重写规则^index\.php/?$/[R,L]
#重定向匹配301^/index.php/(.*)$/$1
#重定向匹配301^/index.php/((?!admin)。*)http://magento.store/$1
重写规则^api/restapi.php?type=rest[QSA,L]
############################################
##HTTP授权的变通方法
##在CGI环境中
重写规则。*-[E=HTTP\U授权:%{HTTP:AUTHORIZATION}]
############################################
##禁用跟踪和跟踪HTTP方法以防止XSS攻击
RewriteCond%{REQUEST_METHOD}^TRAC[EK]
重写规则。*-[L,R=405]
############################################
##在这些文件夹中丢失文件时始终发送404
重写条件%{REQUEST_URI}!^/(媒体|皮肤| js)/
############################################
##决不重写现有文件、目录和链接
重写cond%{REQUEST_FILENAME}!-f
重写cond%{REQUEST_FILENAME}!-d
重写cond%{REQUEST_FILENAME}!-l
############################################
##将所有其他内容重写为index.php
重写规则。*index.php[L]

我的文件中可能有一些冲突吗?

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

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

这会将从index.php/开始的所有请求重定向到不带index.php的URL。此外,index.php和index.php/会重定向到主页。

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

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

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

使用以下内容。htaccess规则:

## index.php on default domain
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteCond %{REQUEST_URI} !^/downloader.*$
RewriteRule ^(.*)index.php$ http://www.idesignmydrapes.com [R=301,L]
RewriteCond %{HTTP_HOST} ^idesignmydrapes\.com$ [NC]

使用下面的访问规则:

## index.php on default domain
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteCond %{REQUEST_URI} !^/downloader.*$
RewriteRule ^(.*)index.php$ http://www.idesignmydrapes.com [R=301,L]
RewriteCond %{HTTP_HOST} ^idesignmydrapes\.com$ [NC]

谢谢大家的帮助。最后,我提出了解决方案,具体如下:

Options +FollowSymLinks
RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_URI} !/adpanel/
RewriteRule ^index\.php/(.*)$ http://magento.store/$1 [L,R=301]

谢谢大家的帮助。最后,我提出了解决方案,具体如下:

Options +FollowSymLinks
RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_URI} !/adpanel/
RewriteRule ^index\.php/(.*)$ http://magento.store/$1 [L,R=301]

尝试使用magento的默认htaccess。@urfusion很遗憾,但我无法这样做,因为这些配置已在生产服务器上使用,并由以前的开发人员编写。我无法使用默认值。尝试使用magento的默认htaccess。@urfusion很遗憾,但我无法这样做,因为这些配置已在生产服务器上使用并已写入由以前的开发人员创建。我不能使用默认值。这种方法将我从重定向到,并突然使标记崩溃。它还将我从重定向到不工作。我的文件的哪部分可能与这些行冲突?这种方法将我从重定向到,并突然使标记崩溃。它还将我从重定向到不工作。我的哪部分我的文件可能与这些行冲突?