Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 表达式引擎2 301将旧模板组重定向到新模板组_.htaccess_Redirect_Expressionengine - Fatal编程技术网

.htaccess 表达式引擎2 301将旧模板组重定向到新模板组

.htaccess 表达式引擎2 301将旧模板组重定向到新模板组,.htaccess,redirect,expressionengine,.htaccess,Redirect,Expressionengine,我认为这将是非常简单的,但是我在将旧模板组永久重定向到新模板组时遇到了问题 我有www.domain.co.uk/weddings,需要将其定向到www.domain.co.uk/more weddings 两个模板组都存在,不确定是否也需要删除旧模板组?或者模板首选项中的任何其他设置 以下是我一直在尝试使用的: RedirectMatch 301 ^/weddings\$ http://www.domain.co.uk/more-weddings 我有更多的重定向也在工作,这个新重定向是否需

我认为这将是非常简单的,但是我在将旧模板组永久重定向到新模板组时遇到了问题

我有
www.domain.co.uk/weddings
,需要将其定向到
www.domain.co.uk/more weddings

两个模板组都存在,不确定是否也需要删除旧模板组?或者模板首选项中的任何其他设置

以下是我一直在尝试使用的:

RedirectMatch 301 ^/weddings\$ http://www.domain.co.uk/more-weddings

我有更多的重定向也在工作,这个新重定向是否需要放在它们上面?

您可以在旧模板(婚礼/索引)中启用PHP,并将其放在其中:

<?php
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: http://www.domain.co.uk/more-weddings');
    exit();
?>

在编写
mod_rewrite
规则时,这些规则将按其出现的顺序应用

在您的情况下,您希望您的
重定向匹配
出现在任何其他重写规则之前——如果您是

在您的示例中,如果您只想重定向某个目录(即ExpressionEngine模板组),则以下规则将执行此操作,同时允许站点的其余部分正常运行:

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Redirect Only Matching Directories
    RewriteCond %{REQUEST_URI} ^/(weddings|weddings/.*)$
    RewriteRule ^(.*)$ http://www.domain.co.uk/more-weddings/$1 [R=301,L]
</IfModule>

重新启动发动机
#只重定向匹配的目录
重写cond%{REQUEST_URI}^/(weddings | weddings/*)$
重写规则^(.*)$http://www.domain.co.uk/more-weddings/$1[R=301,L]
确保在删除index.php之前显示此规则(示例如下):


重新启动发动机
#只重定向匹配的目录
重写cond%{REQUEST_URI}^/(weddings | weddings/*)$
重写规则^(.*)$http://www.domain.co.uk/more-weddings/$1[R=301,L]
#从URL中删除ExpressionEngine index.php
重写秒$1!\。(gif | jpe?g | png)$[NC]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$/index.php/$1[L]
如果您希望Google和其他爬虫程序将您的内容视为临时移动(响应代码302,默认值)或永久移动(301),请确保适当配置


为什么要转义美元特殊符号
\$
??这告诉Apache查找此URL
/weddings$
。如果在
$
之前没有反斜杠,Apache将准确地查找
/weddings
<IfModule mod_rewrite.c>
    RewriteEngine On

    # Redirect Only Matching Directories
    RewriteCond %{REQUEST_URI} ^/(weddings|weddings/.*)$
    RewriteRule ^(.*)$ http://www.domain.co.uk/more-weddings/$1 [R=301,L]

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