исключение base64_decode() при изменении URL Laravel

#php #url #laravel #virtualhost

#php #url #laravel #virtualhost

Вопрос:

У меня есть установка laravel на моем сервере /var/www/html/site/ , и я могу получить к ней доступ здесь dev.site.com . Я хотел бы изменить URL-адрес платы site.com , просто изменив корень моего документа для этого виртуального хоста. Итак, я указываю site.com на /var/www/html/site/public , и laravel выдает ошибку:

base64_decode() expects parameter 1 to be a string, array given

Это происходит только тогда, когда я захожу на веб-сайт, используя URL site.com -адрес, и когда я меняю его обратно dev.site.com , все снова в порядке. Я обновил URL-адрес приложения до site.com .

Я запускаю laravel 4.2 на centos 4.5 final.


Виртуальные хосты

 <VirtualHost *:80>
    ServerName dev.site.com
    ServerAlias dev.site.com
    ServerAdmin tech@myDomain.com
    DocumentRoot "/var/www/html/site/public"
    <Directory /var/www/html/site/public>
            AllowOverride All
            Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName site.com
    ServerAlias site.com
    ServerAdmin tech@myDomain.com
    DocumentRoot "/var/www/html/site/public"
    <Directory /var/www/html/site/public>
            AllowOverride All
            Allow from all
    </Directory>
</VirtualHost>
 

/var/www/html/site/vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php

  * @param  string  $payload
 * @return array
 *
 * @throws DecryptException
 */
protected function getJsonPayload($payload)
{
    $payload = json_decode(base64_decode($payload), true);
 

7 IlluminateEncryptionEncrypter getJsonPayload

  * Decrypt the given value.
 *
 * @param  string  $payload
 * @return string
 */
public function decrypt($payload)
{
    $payload = $this->getJsonPayload($payload);

    // We'll go ahead and remove the PKCS7 padding from the encrypted value before
 

Просто чтобы еще раз прояснить, если я снова перейду к dev.site.com нему, все будет в порядке.

Комментарии:

1. Как выглядит строка (или массив), которую вы пытаетесь передать для base64_decode() функции? Пожалуйста, включите этот код в свой вопрос.

2.Вам нужно будет включить код, который вызывает getJsonPayload , чтобы кто-то ответил на ваш вопрос.

3. Я думаю, что теперь я все понял.

4. Что-то в вашем коде жестко запрограммировано dev.site.com .

5. Я пытался везде искать что-то жестко подключенное dev.site.com , но не смог его найти. Я не помню, чтобы когда-либо писал dev.site.com где-либо.

Ответ №1:

Решается просто путем очистки моих файлов cookie….