从URL中删除index.php但保持旧链接正常工作

时间:2009-10-07 08:30:03

标签: .htaccess mod-rewrite url-rewriting rewrite ezpublish

我正在尝试从URL中删除index.php,该URL正在使用EZPublish站点上的.htaccess示例和ForceVirtualHost = true。问题是指向index.php的旧链接不再有效(从搜索引擎链接时会出现问题)。

我试图在.htaccess中使用重写规则找到解决方法,但是我无法让它工作。我的一些尝试是:

尝试1

RewriteCond %{REQUEST_URI} ^/index.php
RewriteRule ^index\.php(.*) http://www.mysite.com$1

RewriteCond %{REQUEST_URI} !^/index.php
RewriteRule .* index.php [L]

此尝试会导致无限循环。

尝试2

RewriteCond %{REQUEST_URI} ^/(index\.php)?(.*)$
RewriteRule %2 index.php [L]

RewriteRule .* index.php [L]

也不起作用: - (。

NB。 'RewriteRule。* index.php [L]'是在EZPublish中设置虚拟主机所必需的。

非常感谢任何帮助。

利德

2 个答案:

答案 0 :(得分:1)

在你的settings / override / site.ini.append.php中

 [SiteAccessSettings]
 ForceVirtualHost=true

答案 1 :(得分:0)

请尝试检查request line

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

RewriteRule !^index\.php$ index.php [L]