Вопросительный знак в 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>
2 answers
У вас ошибка в конфигурации apache. Он пытается выдать вам страницу с ошибкой 406, но не может ее найти. Если вы исправите это, вы можете получить более информативную ошибку.
Эта ссылка может помочь вам разобраться в корне проблемы: http://urbangiraffe.com/2005/08/20/mysterious-406-error/
Это также может быть вызвано mod_security
. Если это не ваш сервер, вам следует обратиться к своему хостинг-провайдеру.
Вероятность 99,9%, что это вызвано изменением в вашем файле htaccess. Что-то проверяет строку запроса и перенаправляет или пытается загрузить файл, который не существует.