Dot-Htaccess
當 URL 中未指定頁面時,我需要正確重定向什麼 .htaccess RewriteRule?
在我的目錄中
我有以下
.htaccess
文件:RewriteEngine On RewriteRule ^$ http://127.0.0.1:49900/home [P,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ http://127.0.0.1:49900/$1 [P,L]
如果我提供頁面(帶有 .eps 文件的節點應用程序),它會正確路由
http://tanguay.info/webtech/home
但如果我不提供頁面:
它給出了這個錯誤:
Error: ENOENT: no such file or directory, open '/home/tanguay2/public_html/n49900_dpndev/systemPages/index.html.var.ejs'
它似乎
index.html.var.ejs
不是http://127.0.0.1:49900/home
我指定的那個,但我不知道它從哪裡獲取這些index.html.var
資訊。如果我沒有提供頁面,如何讓它正確連結到
http://tanguay.info:49900
?
index.html.var
也許設置為你的DirectoryIndex
. 在這種情況下,mod_dir 會為此文件發出一個內部子請求。(這個文件存在嗎?)如何將其與 mod_rewrite 匹配取決於您的 Apache 版本(2.2 與 2.4)。在 Apache 2.2 中,mod_dir在mod_rewrite 之前執行。在 2.4 中順序顛倒了。
在 Apache 2.4 中,模式
RewriteRule
應該^$
足夠了(因為它在 mod_dir 發出子請求之前被處理)。如果目錄索引文件不存在,那麼這也應該適用於 Apache 2.2。但是,要抓住這兩種可能性,然後檢查兩者……例如,將您的第一個更改
RewriteRule
為:RewriteRule ^(index\.html\.var)?$ http://127.0.0.1:49900/home [P,L]
或者,您可以禁用文件
DirectoryIndex
頂部的(如果未使用).htaccess
:DirectoryIndex disabled