[英].htaccess continues to internal redirect
我完全被mod_rewrite的巫毒迷住了。 我们最近已重新定位到aws上的新ubuntu服务器,并且除一个.htaccess文件外,其他所有文件都工作正常。 该文件在以前的服务器上运行良好,但在新服务器上运行良好。
有关页面是testing.sonicdad.com/members/admin/。 这应该重定向到testing.sonicdad.com/members/admin.php,而不是test.sonicdad.com/members/admin/index.php
我已经将.htaccess简化为该页面的相关代码,但仍然存在问题。 请看下面:
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]
这是日志的相关部分
[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
问题似乎是内部重定向。 为了阻止这种情况,我尝试将标志修改为[END]。 我还尝试了以下变化:
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]
RewriteCond %{ENV:REDIRECT_STATUS} !=200
请有人告诉我在应用规则后如何停止此内部重定向。
谢谢
这里还有其他.htaccess文件在播放吗? 就像在您的/ admin /等任何子目录中一样?
同时尝试交换htaccess文件的最后两行,
RewriteRule ^admin/$ admin.php [L]
RewriteRule ^(.*)$ /members/$1/ [L,R=301]
据我所知,Switch [L]表示要使用的最后一条规则。 也尝试删除它。
我们无法解决此问题,因此我们修改了文件夹结构,因此没有副本文件名和文件夹名称,即admin.php和admin /。
这实际上意味着我们拥有更干净,更具描述性的文件夹结构,对此我感到满意
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.