.htaccess规则,用于重定向到父级

时间:2018-10-18 08:38:24

标签: apache .htaccess mod-rewrite

我正在尝试使用.htaccess文件将我的网址之一重定向到父文件夹。我尝试了以下规则

RewriteRule ^test/(.+)$ /test/ [L,R=301]

htaccess wildcard redirect to parent folder找到,但无法正常工作(日志显示重定向过多)。

我也尝试了下面的其他规则,但没有一个起作用

RewriteBase /
RewriteCond %{REQUEST_URI} !=/test/
RewriteRule ^(.*) /test/ [END,NC]

RewriteEngine on
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^test/(.+)$ /test/ [L,R=301]

操作系统是ubuntu服务器。任何帮助或指针表示赞赏。请让我知道是否可以提供其他任何要调试的细节。谢谢

3 个答案:

答案 0 :(得分:1)

考虑到父目录为test

,以下操作应该有效
RewriteEngine On
RewriteRule ^(test/).* /$1 [R=301,L]

答案 1 :(得分:1)

添加此项以禁用MultiViews:

Options -MultiViews

Apache docs on mod_negotiation描述了启用多视图选项后的功能:

  

如果   服务器收到对/ some / dir / foo的请求,而/ some / dir / foo没有   存在,然后服务器读取目录以查找所有名为   foo。*,并有效地伪造了一个将所有这些命名的类型映射   文件,为其分配相同的媒体类型并对其进行内容编码   如果客户要求提供其中一个姓名,则将具有。然后   选择最符合客户要求的匹配项,然后返回   文档。

使用:

Options -MultiViews
RewriteEngine on
RewriteRule ^test/(.+)$ /test/ [NC,L,R=301]

答案 2 :(得分:0)

在您的特定文件夹中

RewriteEngine On
RewriteRule ^rootFName(.*) /rFile.php  [QSA,R=301,L]