#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, похоже, не работают на моем сайте.