在我的目录中
我有以下.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
为:或者,您可以禁用文件
DirectoryIndex
顶部的(如果未使用).htaccess
: