Белый экран на перезаписи Apache

#php #apache #.htaccess #url-rewriting

Вопрос:

Я экспериментирую с .htaccess и пытаюсь переписать свой .php на альтернативный url, но я продолжаю нажимать на белый экран.

Я могу подтвердить, что моя перезапись apache посещает правильный файл/путь к файлу и что мои php и html читаются после перенаправления, однако мои функции по какой-то причине не работают после перезаписи URL-адреса. В качестве альтернативы я использую постоянные ссылки WordPress для изменения page-shop.php чтобы https://mhspeakers.com/shop/ .

Мой htaccess выглядит следующим образом:

 RewriteOptions inherit
Options -Multiviews  FollowSymLinks

<IfModule mime_module>
  AddHandler application/x-httpd-ea-php73 .php .php7 .phtml
</IfModule>

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/gif "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType application/pdf "access plus 1 month"
    ExpiresByType text/javascript "access plus 1 month"
    ExpiresByType text/html "access plus 5 minutes"
    ExpiresByType image/x-icon "access plus 1 year"
    ExpiresDefault "access plus 6 hours"
</IfModule>
<ifModule mod_headers.c>
Header set X-Endurance-Cache-Level "2"
</ifModule>

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^test$ wp-content/themes/mhspeakers.com/page-shop.php
</IfModule>

<IfModule mod_headers.c>

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Header always set Content-Security-Policy "upgrade-insecure-requests;"

#Sets Access Control
Header set Access-Control-Allow-Origin 'https://mhspeakers.com/homepage'
Header set Access-Control-Allow-Origin 'https://mhspeakers.com'
Header set Access-Control-Allow-Origin 'origin'

RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
 

Это моя страница магазина без перезаписи htaccess:
https://mhspeakers.com/shop

Если я введу ссылку ниже, которая предназначена для отправки меня на мой page-shop.php, Однако я получаю белую страницу.
https://mhspeakers.com/test

Это первые несколько строк моего page-shop.php файл:

 <?php 
// Session Start 
session_start(); 

// Connect Handler
include('handler/connect.php'); ?>

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>MHSpeakers Shop</title>
        <meta name="viewport" content="width=device-width, intial-scale=1.0"/>
        <meta name="keywords" content="Cheshire's leading speaker designer and renovator.">
        <meta name="description" content="Cheshire's leading speaker designer and renovator. We buy, sell and build speakers.">
        <meta property="og:image" src="" alt="Cheshire's leading speaker designer and renovator."/>     
    </head>
 <?php get_header2(); ?>
<body>
    <div class="shop-page">
    <div class="shop-inner center">
    <h1 class="shop-h1">Shop</h1>
    ..................................

 

Есть какие-нибудь предложения?

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

1. WSOD (Белый экран смерти) часто встречается, если вы получаете ошибку сервера (ошибка 500) при отключении display_errors (которую вы должны иметь в производстве). Проверьте журнал ошибок ваших веб-серверов и посмотрите, видите ли вы там какие-либо полезные сообщения об ошибках. «Я могу подтвердить, что мой apache rewrite посещает правильный файл/путь к файлу» — Как вы это подтвердили? Пожалуйста, добавьте в вопрос, какую отладку вы выполнили, и ее результаты.

2. Привет, Магнус, спасибо за твое сообщение. Если я заменю вышеперечисленное page-shop.php содержимое с чисто HTML или эхом «Привет, это тест», данные появятся. Кроме того, если я посещаю инструменты разработки и посещаю свои элементы, я могу видеть весь свой HTML вплоть до части get_header2 (). Поэтому я считаю, что это проблема функций.

3. Похоже, что здесь мы работаем в значительной степени полностью против WordPress. Если у вас есть определенный шаблон страницы, то почему вы не назначаете его реальному объекту страницы с помощью слизняка test ? Чего вы на самом деле пытаетесь здесь достичь?

4. Привет, CBroe, я планирую реализовать красивые URL-адреса, как только выясню, как переписать URL-адрес страницы с помощью htaccess. Красивые плагины URL, похоже, не работают на моем сайте.