1

客户有一个表达式引擎站点并希望删除“index.php”。单独这样做会降低他的网站 SEO 排名,因为它会更改所有 URL。因此,我们希望通过向所有页面添加 301 来保留链接权益和社交网络共享计数。

我知道如何删除 index.php 并且知道如何重定向(我认为),但是当我同时使用它们时,服务器会引发重定向循环。我的逻辑是扭曲的。我在这里想念什么?

这是我正在使用的内容:

# Redirect attempt
Redirect 301 /index.php/feature/article/ http://domain.com/feature/article/

# EE index.php rewrite
RewriteCond $1 !^(index\.php|js|path\.php|press_releases|rear|robots\.txt|text\.html|themes) [NC]
RewriteRule ^(.*)$ /index.php/$1 [L] 
4

1 回答 1

2

如果实际请求是针对/index.php/URL的,您只想重定向。Redirect将您的指令更改为:

# Redirect attempt
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php
RewriteRule ^/?index.php/feature/article/(.*)$ http://domain.com/feature/article/$1 [R=301,L]

此条件与服务器获得的实际请求匹配,而不是 URI(可以被第二条规则重写)。

于 2012-07-24T03:44:53.277 回答