В моем каталоге
У меня есть следующие .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 a RewriteRule
шаблон из ^$
должно быть достаточно (так как он обрабатывается до того, как mod_dir выдаст подзапрос). Если документ индекса каталога не существует, это также должно работать на Apache 2.2. Однако, чтобы уловить обе возможности, проверьте оба ...
Например, измените свой первый RewriteRule
читать:
RewriteRule ^(index\.html\.var)?$ http://127.0.0.1:49900/home [P,L]
Или вы можете отключить DirectoryIndex
(если он не используется) в верхней части вашего .htaccess
файл:
DirectoryIndex disabled