.htaccess 表达式引擎内置重定向?

.htaccess 表达式引擎内置重定向?,.htaccess,redirect,expressionengine,.htaccess,Redirect,Expressionengine,我刚刚在Expression Engine中重建了我们的一个网站,一切都很顺利!我需要创建一系列重定向,希望能够修复以前站点中的一些旧URL 例如: 旧站点创建的URL类似于:index.php?id=30 例如,这个需要重定向到: 因此,在我的.htaccess中,我创建了: 重定向/index.php?id=30 我为所有不同的身份证做了大约50次。然而,当我访问这些链接时,他们只是将我放在主页上,并保持URL的原样。(www.example.com/index.php?id=30) 然后我

我刚刚在Expression Engine中重建了我们的一个网站,一切都很顺利!我需要创建一系列重定向,希望能够修复以前站点中的一些旧URL

例如:

旧站点创建的URL类似于:index.php?id=30

例如,这个需要重定向到:

因此,在我的.htaccess中,我创建了:

重定向/index.php?id=30

我为所有不同的身份证做了大约50次。然而,当我访问这些链接时,他们只是将我放在主页上,并保持URL的原样。(www.example.com/index.php?id=30)

然后我注意到它对任何不存在的URL都这样做。这样我就可以输入:

www.example.com/asdasdjasdbjhasdbjhasdbjhasdbjhasdbjhasd

它只是把我放在主页上

下面是我的.htaccess文件中的其他内容,以及一些重定向示例。这第一位只是从URL中删除了/index.php

重新启动发动机

    # Removes index.php from ExpressionEngine URLs
    RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php/$1 [L]

那么这里发生了什么,表达式引擎是否内置了破坏我重定向的重定向


谢谢你的帮助

您无法在
重定向
语句中匹配查询字符串,您需要使用
RewriteCond
并匹配
%{query\u string}
变量。确保在表达式引擎规则之前添加以下规则:

RewriteCond %{QUERY_STRING} ^id=30
RewriteRule ^/?index.php$ http://www.example.com/contact [L,R]
RewriteCond %{QUERY_STRING} ^id=26
RewriteRule ^/?index.php$ http://www.example.com/careers [L,R]
RewriteCond %{QUERY_STRING} ^id=28
RewriteRule ^/?index.php$ http://www.example.com/about [L,R]

等等。

你好-您可能想查看EE特定的StackExchange网站:expressionengine.StackExchange.com知道了,谢谢。这实际上在我的EE规则之后也起了作用。对于其他人,我需要在我的重定向链接后添加一个“?”以从URL中去掉“id=28”的废话。示例:RewriteRule^/?index.php$^[L,R]我会给你因果报应,但我不能等到我有15:(
RewriteCond %{QUERY_STRING} ^id=30
RewriteRule ^/?index.php$ http://www.example.com/contact [L,R]
RewriteCond %{QUERY_STRING} ^id=26
RewriteRule ^/?index.php$ http://www.example.com/careers [L,R]
RewriteCond %{QUERY_STRING} ^id=28
RewriteRule ^/?index.php$ http://www.example.com/about [L,R]