Apache httpd не реализует обновления конфигурации перенаправления 301
У меня проблема с обновлением ранее работавшего перенаправления на моем сервере apache (httpd, rhel). Я ранее имел:
RedirectMatch 301 ^/apidocs/ /old/specific/path/apidocs/
который работал.
Я изменил это на:
RedirectMatch 301 ^/apidocs/ /new/specific/path/apidocs/
и сейчас это не работает. То есть, когда я пытаюсь нажать на простой http: //
File does not exist: /var/www/html/old
дела service httpd reload
или же service httpd force-reload
производит только следующую единственную строку вывода:
Reloading httpd:
... так что это, по-видимому, успешно. Также,
(1) когда httpd запущен, его журнал ошибок не имеет жалоб.
(2) работает apachectl configtest
производит Syntax OK
,
(3) работает httpd -t
производит Syntax OK
,
(4) Я остановился, и "изящный" начал httpd несколько раз, но безрезультатно.
(5) Я пытался использовать apachectl -k stop/start, но безрезультатно.
(6) Я также попытался очистить кеш с помощью htcacheclean, но безрезультатно.
Стоит отметить, что ранее, несмотря на то, что модули кеша модов и дисков кеша модов были загружены, конфигурации CacheRoot & etc не было, поэтому я добавил следующее:
CacheEnable disk /
CacheRoot "/var/cache/httpd"
CacheDirLength 2
CacheDirLevels 2
... и впоследствии проверил, что он был заполнен, и очистил его с помощью htcacheclean.
Где еще могут быть сохранены эти устаревшие данные 301?
Спасибо! Hans
2 ответа
... так что "ответ" заключается в том, что предпосылка вопроса неверна. То есть apache httpd делает свою работу правильно. Реальная проблема заключается в том, что где-то между httpd на сервере и моей локальной машиной существует уровень кэширования. Я принимаю в качестве доказательства этого, что:
1. wget, выполненный с моей локальной машины, перенаправляется на старый redirect-url, а
2. выполненный с сервера wget правильно перенаправлен на новый URL-адрес редиректа,
и журналы доступа для первого выглядят так:
"GET /old/specific/path/apidocs/ HTTP/1.1" 404
тогда как последний произвел:
"GET /apidocs/ HTTP/1.0" 301
"GET /new/specific/path/apidocs/ HTTP/1.0" 200
Во -первых, вам нужно устранить синтаксическую ошибку, поэтому запустите httpd -t
Примерно так (за исключением эхо-части), таким образом вы можете выяснить, какой файл конфигурации содержит синтаксическую ошибку:
[root@wcmisdlin02 conf.d]# echo blah >> php.conf
[root@wcmisdlin02 conf.d]# httpd -t
AH00526: Syntax error on line 33 of /etc/httpd/conf.d/php.conf:
Invalid command 'blah', perhaps misspelled or defined by a module not included in the server configuration
[root@wcmisdlin02 conf.d]#
Согласно mod_alias - Apache HTTP Server версии 2.4, ваш RedirectMatch
кажется в порядке. Вы получаете доступ к Виртуальному хосту?