简体   繁体   English

.htaccess继续内部重定向

[英].htaccess continues to internal redirect

I'm being completely out witted by the voodoo that is mod_rewrite. 我完全被mod_rewrite的巫毒迷住了。 We have recently relocated to a new ubuntu server on aws, and all appears to be working fine except one .htaccess file. 我们最近已重新定位到aws上的新ubuntu服务器,并且除一个.htaccess文件外,其他所有文件都工作正常。 This file was working great on the previous server but it's working well on the new server. 该文件在以前的服务器上运行良好,但在新服务器上运行良好。

The page concerned is testing.sonicdad.com/members/admin/. 有关页面是testing.sonicdad.com/members/admin/。 This should redirect to testing.sonicdad.com/members/admin.php and not testing.sonicdad.com/members/admin/index.php 这应该重定向到testing.sonicdad.com/members/admin.php,而不是test.sonicdad.com/members/admin/index.php

I've stripped the .htaccess down to just the relevant code for this page, and still have the problem. 我已经将.htaccess简化为该页面的相关代码,但仍然存在问题。 Please see below: 请看下面:

RewriteEngine On
RewriteBase /members

## Append Trailing "/" to URL if absent ##
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$   /members/$1/    [L,R=301]

RewriteRule ^admin/$  admin.php [L]

This is the relate part of the logs 这是日志的相关部分

[rewrite:trace3] [pid 26730] mod_rewrite.c(468): [client 121.202.24.118:13894] 121.202.24.118 - - [testing.sonicdad.com/sid#7f8e16990038][rid#7f8e168600a0/initial] [perdir /var/www/html/members/] strip per-dir prefix: /var/www/html/members/admin/ -> admin/
[rewrite:trace3] [pid 26730] mod_rewrite.c(468): [client 121.202.24.118:13894] 121.202.24.118 - - [testing.sonicdad.com/sid#7f8e16990038][rid#7f8e168600a0/initial] [perdir /var/www/html/members/] applying pattern '^(.*)$' to uri 'admin/'
[rewrite:trace4] [pid 26730] mod_rewrite.c(468): [client 121.202.24.118:13894] 121.202.24.118 - - [testing.sonicdad.com/sid#7f8e16990038][rid#7f8e168600a0/initial] [perdir /var/www/html/members/] RewriteCond: input='/var/www/html/members/admin/' pattern='!-f' => matched
[rewrite:trace4] [pid 26730] mod_rewrite.c(468): [client 121.202.24.118:13894] 121.202.24.118 - - [testing.sonicdad.com/sid#7f8e16990038][rid#7f8e168600a0/initial] [perdir /var/www/html/members/] RewriteCond: input='/members/admin/' pattern='!(.*)/$' => not-matched
[rewrite:trace3] [pid 26730] mod_rewrite.c(468): [client 121.202.24.118:13894] 121.202.24.118 - - [testing.sonicdad.com/sid#7f8e16990038][rid#7f8e168600a0/initial] [perdir /var/www/html/members/] strip per-dir prefix: /var/www/html/members/admin/ -> admin/
[rewrite:trace3] [pid 26730] mod_rewrite.c(468): [client 121.202.24.118:13894] 121.202.24.118 - - [testing.sonicdad.com/sid#7f8e16990038][rid#7f8e168600a0/initial] [perdir /var/www/html/members/] applying pattern '^admin/$' to uri 'admin/'
[rewrite:trace2] [pid 26730] mod_rewrite.c(468): [client 121.202.24.118:13894] 121.202.24.118 - - [testing.sonicdad.com/sid#7f8e16990038][rid#7f8e168600a0/initial] [perdir /var/www/html/members/] rewrite 'admin/' -> 'admin.php'
[rewrite:trace3] [pid 26730] mod_rewrite.c(468): [client 121.202.24.118:13894] 121.202.24.118 - - [testing.sonicdad.com/sid#7f8e16990038][rid#7f8e168600a0/initial] [perdir /var/www/html/members/] add per-dir prefix: admin.php -> /var/www/html/members/admin.php
[rewrite:trace2] [pid 26730] mod_rewrite.c(468): [client 121.202.24.118:13894] 121.202.24.118 - - [testing.sonicdad.com/sid#7f8e16990038][rid#7f8e168600a0/initial] [perdir /var/www/html/members/] trying to replace prefix /var/www/html/members/ with /members
[rewrite:trace4] [pid 26730] mod_rewrite.c(468): [client 121.202.24.118:13894] 121.202.24.118 - - [testing.sonicdad.com/sid#7f8e16990038][rid#7f8e168600a0/initial] add subst prefix: admin.php -> /members/admin.php
[rewrite:trace1] [pid 26730] mod_rewrite.c(468): [client 121.202.24.118:13894] 121.202.24.118 - - [testing.sonicdad.com/sid#7f8e16990038][rid#7f8e168600a0/initial] [perdir /var/www/html/members/] internal redirect with /members/admin.php [INTERNAL REDIRECT]
[rewrite:trace1] [pid 26730] mod_rewrite.c(468): [client 121.202.24.118:13894] 121.202.24.118 - - [testing.sonicdad.com/sid#7f8e16990038][rid#7f8e0ced10a0/subreq] [perdir /var/www/html/members/] pass through /var/www/html/members/admin/index.html
[rewrite:trace1] [pid 26730] mod_rewrite.c(468): [client 121.202.24.118:13894] 121.202.24.118 - - [testing.sonicdad.com/sid#7f8e16990038][rid#7f8e0ced10a0/subreq] [perdir /var/www/html/members/] pass through /var/www/html/members/admin/index.cgi
[rewrite:trace1] [pid 26730] mod_rewrite.c(468): [client 121.202.24.118:13894] 121.202.24.118 - - [testing.sonicdad.com/sid#7f8e16990038][rid#7f8e0ced10a0/subreq] [perdir /var/www/html/members/] pass through /var/www/html/members/admin/index.pl
[rewrite:trace1] [pid 26730] mod_rewrite.c(468): [client 121.202.24.118:13894] 121.202.24.118 - - [testing.sonicdad.com/sid#7f8e16990038][rid#7f8e0ced10a0/subreq] [perdir /var/www/html/members/] pass through /var/www/html/members/admin/index.php

The issue appears to be the internal redirect. 问题似乎是内部重定向。 I to stop this I have tried modifying the flag to [END]. 为了阻止这种情况,我尝试将标志修改为[END]。 I have also tried variations of the following: 我还尝试了以下变化:

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]

RewriteCond %{ENV:REDIRECT_STATUS} !=200

Please could someone tell me how to stop this internal redirect after the rule is applied. 请有人告诉我在应用规则后如何停止此内部重定向。

Thanks 谢谢

Are there any other .htaccess files in play here? 这里还有其他.htaccess文件在播放吗? Like in any of your sub-directories like /admin/ ? 就像在您的/ admin /等任何子目录中一样?

Also try swapping the last two lines of your htaccess file around, 同时尝试交换htaccess文件的最后两行,

RewriteRule ^admin/$  admin.php [L]
RewriteRule ^(.*)$   /members/$1/    [L,R=301]

As far as I know the Switch [L] means its the last rule to be used. 据我所知,Switch [L]表示要使用的最后一条规则。 Try removing that too. 也尝试删除它。

We where unable to fix this issue so we modified the folder structure so there was no replica filenames and folder names ie admin.php and admin/. 我们无法解决此问题,因此我们修改了文件夹结构,因此没有副本文件名和文件夹名称,即admin.php和admin /。

This actually means we have a cleaner more descriptive folder structure which I'm happy with 这实际上意味着我们拥有更干净,更具描述性的文件夹结构,对此我感到满意

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM