notfound.html не найден - PullRequest
       26

notfound.html не найден

4 голосов
/ 14 февраля 2012

Уверен, основываясь на различных примерах (например, здесь ), я настроил все правильно:

1) Я создал файл notfound.html в корневом каталоге моегоsite

2) Я использую xampp, т.е.Веб-сервер Apache, поэтому, основываясь на материалах, которые я прочитал, Apache ищет notfound.html в корневом каталоге сайта, когда в браузере набирается несуществующая страница, например, www.mysite.com/NotAValidPage.html и использует этот notfound.html для сообщения об ошибке 404

Вот что я пробовал и результат каждой попытки:

1test) Я поставил свой собственный notfound.html в корневой каталог моего сайта и введите несуществующую страницу

1result) my notfound.html не используется, но вместо этого ошибка 404 по умолчанию с (я полагаю) моего веб-сервера, появляется и говорит:

 Object not found!

      The requested URL was not found on this server. If you entered the URL manually please check your spelling and try 
       again.

If you think this is a server error, please contact the webmaster.

Error 404
localhost
2/14/2012 9:11:29 AM
Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1 

2test) Затем я добавил файл .htaccess в корневую папку моего сайта и добавил следующую строку в этот файл .htaccess:

    ErrorDocument 404 /notfound.html

затем я набрал несуществующую страницу в своем браузере.

2result) Я все еще вижу страницу ошибки 404 по умолчанию, а не мой notfound.html, только на этот разна странице ошибки по умолчанию написано:

 Not Found

 The requested URL /mysite.com/indsadfaex.php was not found on this server.

 Additionally, a 404 Not Found error was encountered while trying 
 to use an ErrorDocument to handle the request.

3test) Затем я изменил свой .htполучить доступ к файлу, удалив символ '/' перед именем файла пользовательской страницы ошибки 404 следующим образом: ErrorDocument 404 notfound.html

3result) Теперь, когда я печатаюимя моего сайта, за которым следует несуществующая страница, я больше не вижу по умолчанию страницы ошибки 404 - окно браузера полностью пустое, за исключением следующего в верхнем левом углу:

    notfound.html

Не уверен, чтоделать здесь, кажется, что мне не хватает какой-то тонкости - любые идеи действительно ценятся.

РЕДАКТИРОВАТЬ: Я сомневаюсь, что это важно, но в моем файле .htaccess есть 2 других заявления для перенаправленияситуации:

  RewriteEngine on
  RewriteRule ^([^/\.]+)$ theHandlerPage.php?theArgumentPassedIn=$1 [L]

Регулярное выражение здесь просто говорит: «перейти к самому концу набранного URL и сопоставить непрерывную строку символов, если нет« / »или«. »находится в этом непрерывном потоке символов, затем передайте их с помощью $ _GET [theArgumentPassedIn '] в файл theHandlerPage.php.

Я не думаю, что это правило перезаписи вступает в действие здесь, потому что оно будетне совпадает с неверным именем страницы, таким как mysite / badpage.html, из-за '.'в badpage.html.


Хорошо. Я обнаружил небольшую неожиданность.

1) Я переместил свой файл ошибок notfound.html в родительский каталогмоего сайта - тогда как раньше файл находился в c:/xampp/htdocs/mysite/notfound.html, я теперь переместил этот файл в c:/xampp/htdocs/notfound.html.

2), затем я использую ErrorDocument 404 /notfound.htmlвнутри моего .htaccess файла, который находится по адресу c:/xampp/htdocs/mysite/.htaccess

И теперь, когда я печатаю в панели браузера mysite/aBadfilename.html, мой 404 notfound.html показывает нормально.

НО ЭТО НЕПРАВИЛЬНО.Я не могу разместить мой notfound.html в родительском каталоге моего сайта, потому что мне нужен отдельный notfound.html для каждого разрабатываемого мной сайта.Я должен быть в состоянии поместить notfound.html моего сайта в его папку, т.е.внутри c:/xampp/htdocs/mysite.

Поскольку c:/xampp/htdocs является корневой папкой всех веб-сайтов на сервере.

Почему мой веб-сервер ищет notfound.html моего сайта в c:/xampp/htdocsкорневой каталог вместо c:/xampp/htdocs/mysite?В конце концов, я набираю mysite / badfile.html, поэтому веб-сервер (на мой взгляд) должен понимать, что notfound.html находится в папке c:/xampp/htdocs/mysite.

1 Ответ

1 голос
/ 26 марта 2012

Вы используете виртуальные хосты?если это так, я думаю, что есть проблема, откройте ваш httpd-vhosts.conf и найдите строку, где DocumentRoot C:/xampp/htdocs/bla/blah/mysite/ и запишите полный путь к хосту, если он не работает, играть с каталогомдорожка.Надеюсь, это поможет.

...