首页 文章

.htaccess重定向到父级的规则

提问于
浏览
2

我正在尝试使用 .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 回答

  • 1

    考虑到父目录是 test 以下应该工作

    RewriteEngine On
    RewriteRule ^(test/).* /$1 [R=301,L]
    
  • 1

    添加此项以禁用MultiViews:

    Options -MultiViews
    

    Apache docs on mod_negotiation描述了Multiviews选项在启用时的作用:

    如果服务器收到/ some / dir / foo请求并且/ some / dir / foo不存在,那么服务器会读取目录,查找名为foo . *的所有文件,并有效地伪造一个名为all的类型映射这些文件,如果客户端通过名称请求其中一个文件,则为它们分配相同的媒体类型和内容编码 . 然后,它会根据客户的要求选择最佳匹配,并返回该文档 .

    使用:

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

    在您的特定文件夹中

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

相关问题