Intereting Posts

Как читать переменные $ _GET с (mod rewrite powered) nice URLs

Привет, коллеги-программисты,

Я использую хорошие URL-адреса в первый раз, и я не могу понять, почему я не могу прочитать свои ответы oAuth из моего сценария.

Итак, это моя настройка:

.htaccess

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

У меня есть сценарий, который использует систему googles oAuth для входа пользователя. Этот скрипт отправляет пользователя на страницу google api, где они могут разрешить моему веб-сайту читать их адрес электронной почты, а затем отправлять обратно пользователя на мой сайт с большим количеством переменных $ _GET.

Я говорю Google, чтобы отправить его

 http://mywebsite/login/google/response 

и он это делает ..

Проблема в том, что Google отправляет результат в нормальный формат GET следующим образом:

 http://mywebsite/login/google/response/?openid.ns=http%3A%2F%2Fspecs.openid.ne[..] 

и мой скрипт не может его прочитать.

Есть ли способ читать переменные $ _GET, когда они смешиваются с красивыми URL-адресами?

Вам нужно добавить QSA (дополнение строки запроса) к вашим флагам.

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

Тогда ваш $_GET будет содержать правильные значения.