Вопросительный знак в URL-адресе для переменных PHP делает ссылку неработающей. Есть идеи, почему?


Я не знаю, что изменилось в прошлом - раньше это работало:

Доступ к URL-адресу на моем сервере, как показано ниже, не работает: http://www.domain.com/folder/file.php?variable=a&variable2=b

Я получаю сообщение "Не найден запрошенный адрес 406.shtml не найден на этом сервере". сообщение.

Однако, если я получу доступ к этому, это сработает: http://www.domain.com/folder/file.php

Добавление знака вопроса после file.php это то, что заставляет его ломаться. Я никогда раньше не сталкивался с подобной проблемой. Сначала я подумал, что .htaccess имеет к этому какое-то отношение, но я точно знаю, что в прошлом он вообще не редактировался.

Есть идеи? Я использую CakePHP, но сомневаюсь, что это как-то связано с этим; это работало раньше. Все предложения приветствуются!

РЕДАКТИРОВАТЬ: Файл /app/webroot.htaccess содержит следующее:

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

</IfModule>

Насколько я знаю, это совсем не изменилось, и URL-адрес работал с этим. Файл .htaccess справа в разделе /public_html/ содержится следующее:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
<IfModule mod_rewrite.c>
   RewriteEngine on


   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]


</IfModule>
Author: Charles, 2010-10-19

2 answers

У вас ошибка в конфигурации apache. Он пытается выдать вам страницу с ошибкой 406, но не может ее найти. Если вы исправите это, вы можете получить более информативную ошибку.

Эта ссылка может помочь вам разобраться в корне проблемы: http://urbangiraffe.com/2005/08/20/mysterious-406-error/

Это также может быть вызвано mod_security. Если это не ваш сервер, вам следует обратиться к своему хостинг-провайдеру.

 1
Author: Brad Mace, 2010-10-19 15:50:44

Вероятность 99,9%, что это вызвано изменением в вашем файле htaccess. Что-то проверяет строку запроса и перенаправляет или пытается загрузить файл, который не существует.

 0
Author: Citizen, 2010-10-19 15:51:46