Я дійсно не помітив цього переадресації (301), коли запитував такий URL-адресу без косої риски ("/") наприкінці: http://server/directory
Сервер відповість постійним заголовком 301 Perirect Permanent із розташуванням заголовка Location http://server/directory/
.
Дивіться цей живий приклад:
Запит користувача:
GET /social HTTP/1.1
( http://192.168.1.111/social )
Відповідь сервера Apache:
HTTP/1.1 301 Moved Permanently
Location: http://192.168.1.111/social/
Запит користувача:
GET /social/ HTTP/1.1
( http://192.168.1.111/social/ )
Відповідь сервера Apache:
HTTP/1.1 200 OK
Apache access.log:
192.168.1.130 - - [05/Apr/2014:22:06:47 +0200] "GET /social HTTP/1.1" 301 558 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:27.0) Gecko/20100101 Firefox/27.0"
-
192.168.1.130 - - [05/Apr/2014:22:06:47 +0200] "GET /social/ HTTP/1.1" 200 942 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:27.0) Gecko/20100101 Firefox/27.0"
Каталог / social / містить index.html
файл.
Програмне забезпечення Apache: Apache/2.2.22 (Ubuntu)
Параметри каталогу:Options Indexes FollowSymLinks MultiViews
Отже, моє питання: Чому апарат робить це? І як запобігти переадресації та надіслати index.html
безпосередньо? Клієнти повинні надіслати два запити, що справді непотрібно. І, можливо, хтось із клієнтів не дозволяє переспрямувати і не зможе зайти на сайт без кінцевої косої риски ("/").
Я не хочу відключати переадресацію. Я не хочу, щоб сервер надсилав відповідь безпосередньо без перенаправлення. Навіть при запиті /social
.
Чи призначений apache для перенаправлення цих запитів? Сервер міг просто надсилати дані без перенаправлення, правда? Чи повинен я використовувати mod_rewrite
для запобігання цьому? Або інша конфігурація? Або я повинен просто дозволити це таким чином і додати косу рису в кінці всіх HTML-посилань і жити з деякими переспрямованими?
Як ви думаєте, хлопці?
index.html
/social
. (Також, як правило, подавати один і той же вміст у кількох URL-адресах зазвичай не бажано.)
/social
у вашому прикладі.