【问题标题】:Apache 2.4 mod_rewrite strange internal redirect to domain nameApache 2.4 mod_rewrite 奇怪的内部重定向到域名
【发布时间】:2016-09-09 15:37:21
【问题描述】:

一段时间以来,我对 apache 2.4 有一个非常奇怪的问题。

如果我启用 mod_rewrite 并转到一个找不到的页面,那么 apache 会执行一个非常奇怪的内部重定向。重定向链接到我的一个域,但我不明白这是从哪里来的。

我所做的如下:

为简单起见,我已将这些添加到 http.conf:

LoadModule rewrite_module modules/mod_rewrite.so

<VirtualHost *:80>
    DocumentRoot "d:/Empty"
    ServerName projects.test
    <Directory />
        Options FollowSymLinks Indexes 
        AllowOverride All
        Require all granted    
    </Directory>
</VirtualHost>

LogLevel debug rewrite:trace1

现在,奇怪的事情来了。如果我请求一个不存在的页面,例如:http://projects.test/test 我得到内部服务器错误。

一个trace4记录在error.log中:

[Fri Sep 09 17:53:57.325193 2016] [mpm_winnt:debug] [pid 22932:tid 1116] child.c(399): AH00334: Child: Accept thread listening on [::]:443 using AcceptFilter data
[Fri Sep 09 17:53:57.325693 2016] [mpm_winnt:debug] [pid 22932:tid 1148] child.c(399): AH00334: Child: Accept thread listening on [::]:80 using AcceptFilter data
[Fri Sep 09 17:54:01.843332 2016] [http:trace4] [pid 22932:tid 1072] http_request.c(393): [client ::1:62560] Headers received from client:
[Fri Sep 09 17:54:01.843332 2016] [http:trace4] [pid 22932:tid 1072] http_request.c(396): [client ::1:62560]   Host: localhost
[Fri Sep 09 17:54:01.843332 2016] [http:trace4] [pid 22932:tid 1072] http_request.c(396): [client ::1:62560]   Connection: keep-alive
[Fri Sep 09 17:54:01.843332 2016] [http:trace4] [pid 22932:tid 1072] http_request.c(396): [client ::1:62560]   Cache-Control: max-age=0
[Fri Sep 09 17:54:01.843332 2016] [http:trace4] [pid 22932:tid 1072] http_request.c(396): [client ::1:62560]   Upgrade-Insecure-Requests: 1
[Fri Sep 09 17:54:01.843332 2016] [http:trace4] [pid 22932:tid 1072] http_request.c(396): [client ::1:62560]   User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
[Fri Sep 09 17:54:01.843332 2016] [http:trace4] [pid 22932:tid 1072] http_request.c(396): [client ::1:62560]   Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
[Fri Sep 09 17:54:01.843332 2016] [http:trace4] [pid 22932:tid 1072] http_request.c(396): [client ::1:62560]   DNT: 1
[Fri Sep 09 17:54:01.843332 2016] [http:trace4] [pid 22932:tid 1072] http_request.c(396): [client ::1:62560]   Accept-Encoding: gzip, deflate
[Fri Sep 09 17:54:01.843332 2016] [http:trace4] [pid 22932:tid 1072] http_request.c(396): [client ::1:62560]   Accept-Language: en,de;q=0.8,en-US;q=0.6
[Fri Sep 09 17:54:01.843332 2016] [http:trace4] [pid 22932:tid 1072] http_request.c(396): [client ::1:62560]   Cookie: Phpstorm-f6f7591a=a1280346-7ebc-47e4-a371-0046f15ed62f
[Fri Sep 09 17:54:01.843833 2016] [authz_core:debug] [pid 22932:tid 1072] mod_authz_core.c(806): [client ::1:62560] AH01626: authorization result of Require all granted: granted
[Fri Sep 09 17:54:01.843833 2016] [authz_core:debug] [pid 22932:tid 1072] mod_authz_core.c(806): [client ::1:62560] AH01626: authorization result of <RequireAny>: granted
[Fri Sep 09 17:54:01.843833 2016] [core:trace3] [pid 22932:tid 1072] request.c(291): [client ::1:62560] request authorized without authentication by access_checker_ex hook: /test
[Fri Sep 09 17:54:01.843833 2016] [rewrite:trace3] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea562a0/initial] [perdir D:/] strip per-dir prefix: D:/Empty/test -> Empty/test
[Fri Sep 09 17:54:01.843833 2016] [rewrite:trace3] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea562a0/initial] [perdir D:/] applying pattern '^index\\.php$' to uri 'Empty/test'
[Fri Sep 09 17:54:01.843833 2016] [rewrite:trace3] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea562a0/initial] [perdir D:/] strip per-dir prefix: D:/Empty/test -> Empty/test
[Fri Sep 09 17:54:01.843833 2016] [rewrite:trace3] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea562a0/initial] [perdir D:/] applying pattern '.' to uri 'Empty/test'
[Fri Sep 09 17:54:01.843833 2016] [rewrite:trace4] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea562a0/initial] [perdir D:/] RewriteCond: input='D:/Empty/test' pattern='!-f' => matched
[Fri Sep 09 17:54:01.843833 2016] [rewrite:trace4] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea562a0/initial] [perdir D:/] RewriteCond: input='D:/Empty/test' pattern='!-d' => matched
[Fri Sep 09 17:54:01.843833 2016] [rewrite:trace2] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea562a0/initial] [perdir D:/] rewrite 'Empty/test' -> '/interpid.eu/index.php'
[Fri Sep 09 17:54:01.843833 2016] [rewrite:trace2] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea562a0/initial] [perdir D:/] trying to replace prefix D:/ with /interpid.eu/
[Fri Sep 09 17:54:01.843833 2016] [rewrite:trace2] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea562a0/initial] [perdir D:/] trying to replace context docroot D:/Empty with context prefix 
[Fri Sep 09 17:54:01.843833 2016] [rewrite:trace1] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea562a0/initial] [perdir D:/] internal redirect with /interpid.eu/index.php [INTERNAL REDIRECT]
[Fri Sep 09 17:54:01.844334 2016] [authz_core:debug] [pid 22932:tid 1072] mod_authz_core.c(806): [client ::1:62560] AH01626: authorization result of Require all granted: granted
[Fri Sep 09 17:54:01.844334 2016] [authz_core:debug] [pid 22932:tid 1072] mod_authz_core.c(806): [client ::1:62560] AH01626: authorization result of <RequireAny>: granted
[Fri Sep 09 17:54:01.844334 2016] [core:trace3] [pid 22932:tid 1072] request.c(291): [client ::1:62560] request authorized without authentication by access_checker_ex hook: /interpid.eu/index.php
[Fri Sep 09 17:54:01.844334 2016] [rewrite:trace3] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea5cc58/initial/redir#1] [perdir D:/] add path info postfix: D:/Empty/interpid.eu -> D:/Empty/interpid.eu/index.php
[Fri Sep 09 17:54:01.844334 2016] [rewrite:trace3] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea5cc58/initial/redir#1] [perdir D:/] strip per-dir prefix: D:/Empty/interpid.eu/index.php -> Empty/interpid.eu/index.php
[Fri Sep 09 17:54:01.844334 2016] [rewrite:trace3] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea5cc58/initial/redir#1] [perdir D:/] applying pattern '^index\\.php$' to uri 'Empty/interpid.eu/index.php'
[Fri Sep 09 17:54:01.844334 2016] [rewrite:trace3] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea5cc58/initial/redir#1] [perdir D:/] add path info postfix: D:/Empty/interpid.eu -> D:/Empty/interpid.eu/index.php
[Fri Sep 09 17:54:01.844334 2016] [rewrite:trace3] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea5cc58/initial/redir#1] [perdir D:/] strip per-dir prefix: D:/Empty/interpid.eu/index.php -> Empty/interpid.eu/index.php
[Fri Sep 09 17:54:01.844334 2016] [rewrite:trace3] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea5cc58/initial/redir#1] [perdir D:/] applying pattern '.' to uri 'Empty/interpid.eu/index.php'
[Fri Sep 09 17:54:01.844334 2016] [rewrite:trace4] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea5cc58/initial/redir#1] [perdir D:/] RewriteCond: input='D:/Empty/interpid.eu' pattern='!-f' => matched
[Fri Sep 09 17:54:01.844334 2016] [rewrite:trace4] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea5cc58/initial/redir#1] [perdir D:/] RewriteCond: input='D:/Empty/interpid.eu' pattern='!-d' => matched
[Fri Sep 09 17:54:01.844334 2016] [rewrite:trace2] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea5cc58/initial/redir#1] [perdir D:/] rewrite 'Empty/interpid.eu/index.php' -> '/interpid.eu/index.php'
[Fri Sep 09 17:54:01.844334 2016] [rewrite:trace2] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea5cc58/initial/redir#1] [perdir D:/] trying to replace prefix D:/ with /interpid.eu/
[Fri Sep 09 17:54:01.844334 2016] [rewrite:trace2] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea5cc58/initial/redir#1] [perdir D:/] trying to replace context docroot D:/Empty with context prefix 
[Fri Sep 09 17:54:01.844334 2016] [rewrite:trace1] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea5cc58/initial/redir#1] [perdir D:/] internal redirect with /interpid.eu/index.php [INTERNAL REDIRECT]

我不知道这个重定向是从哪里用 /interpid.eu/index.php 域完成的???它可能与我的电脑有关……但不知道是什么。

[Fri Sep 09 17:54:01.843833 2016] [rewrite:trace3] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea562a0/initial] [perdir D:/] applying pattern '.' to uri 'Empty/test'
[Fri Sep 09 17:54:01.843833 2016] [rewrite:trace4] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea562a0/initial] [perdir D:/] RewriteCond: input='D:/Empty/test' pattern='!-f' => matched
[Fri Sep 09 17:54:01.843833 2016] [rewrite:trace4] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea562a0/initial] [perdir D:/] RewriteCond: input='D:/Empty/test' pattern='!-d' => matched
[Fri Sep 09 17:54:01.843833 2016] [rewrite:trace2] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea562a0/initial] [perdir D:/] rewrite 'Empty/test' -> '/interpid.eu/index.php'
[Fri Sep 09 17:54:01.843833 2016] [rewrite:trace2] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea562a0/initial] [perdir D:/] trying to replace prefix D:/ with /interpid.eu/
[Fri Sep 09 17:54:01.843833 2016] [rewrite:trace2] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea562a0/initial] [perdir D:/] trying to replace context docroot D:/Empty with context prefix 
[Fri Sep 09 17:54:01.843833 2016] [rewrite:trace1] [pid 22932:tid 1072] mod_rewrite.c(477): [client ::1:62560] ::1 - - [localhost/sid#1f54cf16858][rid#1f54ea562a0/initial] [perdir D:/] internal redirect with /interpid.eu/index.php [INTERNAL REDIRECT]

感谢任何帮助。

【问题讨论】:

    标签: apache .htaccess redirect mod-rewrite


    【解决方案1】:

    哦,该死的。我在“D:/.htaccess”上有一个包含此内容的 .htaccess 文件...

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /interpid.eu/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /interpid.eu/index.php [L]
    </IfModule>
    

    不过,我认为 .htaccess 文件只会考虑 DocumentRoot "d:/Empty"。

    【讨论】:

    • 绝对是阅读D:/.htaccess。您是否在 Apache/vhost 配置中设置了另一个 DocumentRoot
    • 不,我会在后天调查它,因为我没想到会读取 D:/.htaccess。 vhost DocumentRoot 设置为 D:/Empty 在 httpd.conf DocumentRoot "${SRVROOT}/htdocs" 所以,我至少得到了原因,但它仍然很奇怪。
    猜你喜欢
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多