Назад | Перейти на главную страницу

Apache: данный путь содержит подстановочные знаки

Проблема не постоянная; это иногда случается, и я не могу его воссоздать (даже используя те же URL-адреса).

[Вт 20 декабря, 09:07:12 2011] [ошибка] [клиент 66.249.66.169] (20025) Указанный путь содержал подстановочные знаки: не удалось получить доступ к /? P = 2463

[Вт 20 декабря, 10:10:30 2011] [ошибка] [клиент 110.0.107.198] (20025) Указанный путь содержал подстановочные знаки: доступ к /proxyimages.php?url=http%3A%2F%2Fi.imgur.com % 2F2DKZ0.jpg & mimeType = изображение% 2Fjpeg не удалось

Я использую блог Wordpress с некоторыми изменениями, и с тех пор я получал много этих ошибок от apache, и результаты Google для этой проблемы не помогают ...

Любые идеи?

РЕДАКТИРОВАТЬ:

Некоторые виртуальные хосты отличаются только от чистого httpd.conf

<VirtualHost *:80>
    DocumentRoot C:/xampp/htdocs/
    ServerName 94.102.49.102    
</VirtualHost>


<VirtualHost *:80>
    DocumentRoot C:/xampp/htdocs/site1
    ServerName www.site1.com
    ServerAlias site1.com *.site1.com
</VirtualHost>


<VirtualHost *:80>
    DocumentRoot C:/xampp/htdocs/site2
    ServerName www.site2.info
    ServerAlias site2.info *.site2.info
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot C:/xampp/htdocs/site3
    ServerName www.site3.com
    ServerAlias site3.com *.site3.com
</VirtualHost>

И .htaccess, сгенерированный wordpress

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Пятая строка в вашем файле .htaccess выглядит забавно. Кроме того, AFAIK, это не является частью набора правил перезаписи постоянных ссылок по умолчанию в WordPress. Попробуйте удалить (или просто закомментировать) строку. вот о чем я говорю:

RewriteRule ^index\.php$ - [L]

Кроме того, поскольку это правило [L] ast, остальное откладывается после обработки этого правила, поэтому было бы бессмысленно держать их там, если эта строка была предназначена. Пожалуйста, удалите его и сообщите нам о результате

Проблема в том, что в URL-адрес вставляется символ, который необходимо экранировать или удалить. Какое-то правило где-то в apache помещает этот символ. Вы должны принять во внимание любое правило перезаписи или правило AliasMatch.

Скопируйте существующий httpd.conf file и поместите на его место ванильный conf. Посмотрите, существует ли проблема. diff два файла и начните добавлять блоки обратно по одному и тестировать свой сервер. Если вы используете mod_alias, отключите это и посмотрите, сохраняется ли проблема. Также возможно, что вы наследуете какое-то проблемное регулярное выражение где-то в файле .htaccess. Проверьте их и исключите любую возможность там.

После того, как вы сузили проблему, вы можете сообщить об этом, и мы сможем вам помочь.

Редактировать 1

Это похоже на ошибку приложения. Это может быть что-то с одним из ваших плагинов Wordpress. Ошибки предполагают, что что-то вводит в ваши URL-адреса неэкранированные символы. Возможно, функция decodeURI. Основное беспокойство вызывает любая перезапись, которая происходит при извлечении файлов и документов, находящихся за пределами корневого каталога документов веб-сервера.

Отключите все плагины в вашей установке WordPress и проверьте наличие ошибок. Добавляйте их по очереди и смотрите, когда ошибки снова появятся.