Laravel + Vue. js развертывание на Apache - перенаправление 301 - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь развернуть свое приложение на удаленном Apache сервере (Laravel + Vue. js). Но большинство запросов (GET / POST) всегда возвращает код 301 (перемещен постоянно) - независимо от того, какой режим был установлен (dev или production).

Все отлично работает на localhost.

My .htaccess:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

Я пытался редактировать .htaccess без успеха.

app. js:

const router = new VueRouter({
    base: '/',
    mode: 'history',
    routes: [
        {
            path: '/',
            name: 'home',
            component: Home,
            meta: {
                title: 'Homepage',
            }
        },
        {
            path: '/about',
            name: 'about',
            component: About,
            meta: {
                title: 'About',
            }
        },
        // ... more routes
        {
            path: "*",
            component: Home,
            meta: {
                title: 'Homepage',
            }
        }
    ],
});

router.afterEach((to, from) => {
    Vue.nextTick( () => {
        let app_name = document.querySelector("meta[name='application-name']").getAttribute("content");
        document.title = to.meta.title ? app_name + ' - ' + to.meta.title : app_name;
    });
})

window.onload = function() {
    axios.interceptors.response.use(
        response => response,
        error => {
            if (error.response.status === 419) {
                axios.post('/app/logout/').then(function(response) {
                    location.reload();
                });
            }

            return Promise.reject(error);
        }
    )

    const app = new Vue({
        el: '#app',
        components: {
            App
        },
        router,
        store,
    });
};

Я кое о чем забыл ? Спасибо за помощь.

...