Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Apache открывает несуществующие страницы

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

sem88

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Такая ситуация, есть сайт простые html листы, без cms.  Работает под apache.  
   
 Так вот при обращении к list.html открывает нормально. Если написать list, убрав .html страница также отображается.  
 Если написать list.html/qqq.html   или  list/0.html  и т.д.  тоже будет открываться содержимое страницы list.html  
   
 Почему это происходит и как убрать?  
   
 Содержимое  .htaccess  
   
 Options +FollowSymLinks  
 RewriteEngine On  
 RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]  
 RewriteCond %{REQUEST_URI} !^/robots.*  
 RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]  
 RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/  
 RewriteRule ^index\.html$ https://site.ru/ [R=301,L]  
   
 Options -Indexes  
   
 AddType application/x-httpd-php .php .htm .html
 
 
Loaded Modules:
 core_module (static)
 log_config_module (static)
 logio_module (static)
 version_module (static)
 mpm_prefork_module (static)
 http_module (static)
 so_module (static)
 alias_module (shared)
 auth_basic_module (shared)
 authn_file_module (shared)
 authz_default_module (shared)
 authz_groupfile_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 cache_module (shared)
 cgi_module (shared)
 cloudflare_module (shared)
 deflate_module (shared)
 dir_module (shared)
 env_module (shared)
 expires_module (shared)
 headers_module (shared)
 mem_cache_module (shared)
 mime_module (shared)
 negotiation_module (shared)
 php5_module (shared)
 reqtimeout_module (shared)
 rewrite_module (shared)
 setenvif_module (shared)
 status_module (shared)
 
 

Всего записей: 89 | Зарегистр. 13-04-2007 | Отправлено: 09:05 19-02-2019
ATS2000

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Если написать list.html/qqq.html   или  list/0.html  и т.д.  тоже будет открываться содержимое страницы list.html  

 
Вам тут вроде ответили http://forum.ru-board.com/topic.cgi?forum=31&topic=20447#1

Всего записей: 276 | Зарегистр. 21-02-2005 | Отправлено: 10:54 19-02-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sem88
Вам же написали - в существующей теме, а не создавая новую.
Читайте об Multiviews - https://httpd.apache.org/docs/2.4/mod/mod_negotiation.html и убирайте из Options

Всего записей: 16397 | Зарегистр. 20-09-2014 | Отправлено: 15:59 19-02-2019 | Исправлено: Mavrikii, 16:01 19-02-2019
sem88

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо за ответ.  
 

Цитата:
Вам же написали - в существующей теме, а не создавая новую.

Мне сделали вообщем-то справедливое замечание, что тема создана не в том разделе. Решил открыть в более подходящем.  
 
 
Что было сделано:
 
mod_negotiation - выключен.  После этого при запросе list (без указание расширения файла), сервер стал возвращать ошибку 404, т.е. как полагается.
 
 
Однако при написании list.html/ (слеш на конце) по прежнему выдавал содержимое листа list.html
 
для борьбы с этим был добавлен код:
 
RewriteBase /
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]
 
Теперь при запросе list.html/   идет реддирект на list.html, все как полагается.
 
Осталось последнее:  
 
при запросе list.html/sadfa (любой текст),  по прежнему выдает содержимое list.html, как добиться 404 ошибки?
 
 
 
Привожу содержимое .htaccess:
 
 
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.site\.ru$ [NC]
RewriteCond %{REQUEST_URI} !^/robots.*
RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ https://site.ru/ [R=301,L]
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]
 
Options -Indexes
AddType application/x-httpd-php .php .htm .html

Всего записей: 89 | Зарегистр. 13-04-2007 | Отправлено: 08:29 27-02-2019
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sem88

Цитата:
при запросе list.html/sadfa (любой текст),  по прежнему выдает содержимое list.html

потому что вы не чистый .html используете, а обработку php интерпретатором.
любой php скрипт так работает и часть правее добавляется в $_SERVER['PATH_INFO']
если это статика - не цепляйте его к php

Всего записей: 16397 | Зарегистр. 20-09-2014 | Отправлено: 09:55 27-02-2019 | Исправлено: Mavrikii, 09:55 27-02-2019
sem88

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо за ответ.

Всего записей: 89 | Зарегистр. 13-04-2007 | Отправлено: 09:37 03-04-2019
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Apache открывает несуществующие страницы


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru