Я пытаюсь перенаправить на статическую страницу 404.html
, если URI запроса не соответствует тому, что находится в моем белом списке.На данный момент это просто /golf
, для простоты.
Это моя конфигурация Apache vhosts:
<VirtualHost _default_:443>
DocumentRoot "/var/www/crmpicco/wordpress"
ServerName crmpicco.localhost:443
ServerAlias www.crmpicco.localhost
ServerAdmin crmpicco@crmpicco.co.uk
ErrorLog "/private/var/log/apache2/crmpicco.localhost.error_log"
TransferLog "/private/var/log/apache2/crmpicco.localhost.access_log"
ErrorDocument 404 404.html
<Directory "/var/www/crmpicco/wordpress/">
Options +FollowSymLinks
DirectoryIndex index.php
Options -Indexes
Require all granted
AllowOverride all
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/golf
RewriteRule ^ - [R=404,L]
</Directory>
У меня загружен модуль Apache mod_rewrite
и, конечно,, перезапустил Apache после добавления RewriteRule.
Чего мне не хватает?На данный момент это просто сценарий 404 внутри моей темы, который обрабатывается Wordpress, а не Apache.
РЕДАКТИРОВАТЬ: Попытка отследить основную причину.
Когда я ищу httpd-ssl.conf
на своем компьютере, я получаю несколько копий.
$ locate httpd-ssl.conf
/private/etc/apache2/extra/httpd-ssl.conf
/private/etc/apache2/extra/httpd-ssl.conf.mojave
/private/etc/apache2/original/extra/httpd-ssl.conf
/usr/local/Cellar/httpd/2.4.35/.bottle/etc/httpd/extra/httpd-ssl.conf
/usr/local/Cellar/httpd/2.4.35/.bottle/etc/httpd/original/extra/httpd-ssl.conf
/usr/local/etc/httpd/extra/httpd-ssl.conf
/usr/local/etc/httpd/original/extra/httpd-ssl.conf
apachectl
указывает на конфигурацию, которая не используется!
$ apachectl -S
VirtualHost configuration:
*:443 crmpicco.localhost (/usr/local/etc/httpd/extra/httpd-ssl.conf:121)
ServerRoot: "/usr/local/opt/httpd"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/usr/local/var/log/httpd/error_log"
Mutex ssl-stapling: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/usr/local/var/run/httpd/" mechanism=default
Mutex mpm-accept: using_defaults
Mutex ssl-stapling-refresh: using_defaults
Mutex rewrite-map: using_defaults
PidFile: "/usr/local/var/run/httpd/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="_www" id=70 not_used
Group: name="_www" id=70 not_used
Файл /usr/local/etc/httpd/extra/httpd-ssl.conf
был файлом конфигурации, который я редактировал выше для добавления RewriteRules, однако это, похоже, не имело никакого эффекта.
Я отмечаю, что когда я отключаю файл /private/etc/apache2/extra/httpd-ssl.conf
, он нарушает мою конфигурацию Apacheи страницы не загружаются, поэтому создается впечатление, что это используемый файл, однако почему apachectl
сообщает о другом файле?!