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