Apache-2.2

.htaccess 重定向適用於 IP,但不適用於域名

  • February 4, 2012

我有以下 .htaccess 文件:

RewriteEngine   on
RewriteBase     /

RewriteRule     ^(/?)dir/?$            $1dir/subdir           [L]
RewriteRule     ^(/?)subdir2/?$        $1dir/subdir/subdir2   [L]

重定向工作正常,如果我輸入域的 IP,但輸入 domainname/dir 根本不會重定向我,而是顯示目錄的內容。

另一個問題:正如我所說,使用 IP 進行重定向工作正常。但是,雖然沒有設置“R”標誌,但 url 框中的 url 會發生變化。IP/dir 更改為 IP/dir/subdir。為什麼?

編輯(11:20 GMT+1):不太確定它是否有任何相關性,但在今天之前,伺服器沒有域。我剛剛購買了一個域並設置了所有指向伺服器的名稱伺服器。由於我可以訪問該頁面並且它向我顯示 /dir 文件夾的內容,我假設我在那裡沒有搞砸任何東西。

編輯(12:51 GMT+1): apa​​chectl -S 的輸出:

apache2: Could not reliably determine the server's fully qualified domain name, using 0.0.10.188 for ServerName
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
    default server 0.0.10.188 (/etc/apache2/sites-enabled/000-default:1)
    port 80 namevhost 0.0.10.188 (/etc/apache2/sites-enabled/000-default:1)
Syntax OK

編輯(19:26 GMT+1):發現問題。問題是我的伺服器名稱沒有設置,並且我在 ports.conf 和 httpd.conf 中有重複項,兩者都在“監聽”。感謝您指出“apachectl -S”命令。剩下一個神秘的問題:為什麼 url 會改變,儘管沒有設置 R 標誌。永遠的謎…

您需要顯示更多資訊;httpd -S 輸出什麼?

這些規則放在哪裡?

引用自:https://serverfault.com/questions/356813