Я повністю розумію, чому корисно кешувати переадресації в 99% ситуацій, але чи все-таки можна відключити таку поведінку?
Ну, якщо ви робите це з точки зору розробки веб-сервера, то очікуючи змінити кеш-пам'ять браузера за будь-яку ціну для ваших потреб "нескінченного налаштування розвитку" - це неправильний спосіб напасти на цього звіра. Коли ви налагоджуєте переадресації веб-сервера, вам потрібно зосередитись на перевірці виводу заголовка, а не на виведенні повного сторінки виводу, який надають браузери.
Тому замість цього я рекомендував би вивчити, як використовувати curl
та -I
варіант з командного рядка повертати лише заголовки, що дуже корисно для налагодження переадресацій 301 та 302. З командного рядка. Як пояснено на офіційній curl
сторінці чоловіка, такий -I
варіант:
-І / - зав
(HTTP / FTP / FILE) Отримайте лише заголовк HTTP! HTTP-сервери оснащені командою HEAD, яка використовується для отримання нічого, крім заголовка документа. Якщо використовується у файлі FTP або FILE, curl відображає розмір файлу та лише час останньої модифікації.
Наприклад, зробіть a curl -I google.com
і вихід буде приблизно таким:
HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Sat, 11 Apr 2015 04:37:42 GMT
Expires: Mon, 11 May 2015 04:37:42 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.5
І якщо ви хочете прослідкувати весь ланцюжок переадресації через заголовки, тоді додайте -L
параметр (aka:) --location
до такої команди:
curl -I -L google.com
І вихід цієї команди, що слідує за ланцюжком переадресації локації, буде приблизно таким:
HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Sat, 11 Apr 2015 04:48:14 GMT
Expires: Mon, 11 May 2015 04:48:14 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.5
HTTP/1.1 200 OK
Date: Sat, 11 Apr 2015 04:48:14 GMT
Expires: -1
Cache-Control: private, max-age=0
Content-Type: text/html; charset=ISO-8859-1
Set-Cookie: PREF=ID=69d90e4d7a0fcbbb:FF=0:TM=1428727694:LM=1428727694:S=1xqS-toEoa5saQ7n; expires=Mon, 10-Apr-2017 04:48:14 GMT; path=/; domain=.google.com
Set-Cookie: NID=67=pkHjv88MsTB_eB1OqqcMm03kTkFNOSaN4ZEiE5iGViEt7AiJWBc6R-0qJ5s1xu3i5Peg5aHOBHyr7n4-oAxyEE2cL_dBPRLYODst0H-Ztfgrf_6LYXXlix9eghSB8Hzc; expires=Sun, 11-Oct-2015 04:48:14 GMT; path=/; domain=.google.com; HttpOnly
P3P: CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."
Server: gws
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alternate-Protocol: 80:quic,p=0.5
Transfer-Encoding: chunked
Accept-Ranges: none
Vary: Accept-Encoding
Зверніть увагу на відповідь заголовка HTTP/1.1 301 Moved Permanently
, а також Location: http://www.google.com/
. Якщо ваша мета веб-розробки полягає в тестуванні таких речей, як правила перезапису Apache та переадресації, curl -I
це найкращий інструмент, який допоможе вам побачити, що робить ваш твір.
І після того, як ці налаштування будуть доопрацьовані та вдосконалені, тоді виконайте остаточний запуск у справжньому браузері, щоб побачити, як це все ожило.