Я не могу изменить домашнюю страницу своего потокового веб-сайта

Я пытаюсь изменить домашнюю страницу своего сайта, но ничего не происходит. При вводе кода ниже «DirectoryIndex index.html # сделать index.html индексом» моя домашняя страница остается прежней. Я вношу изменения в файл в .htaccess

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    # Explicitly disable rewriting for front controllers
    RewriteRule ^index.php - [L]
    RewriteRule ^index.php - [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    # Change below before deploying to production
    #RewriteRule ^(.*)$ index.php [QSA,L]
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

DirectoryIndex index.html #to make index.html as index

Мой сайт написан на php, и я хочу поместить домашнюю страницу в html.

«пытается изменить домашнюю страницу» — этим я предполагаю, что вы пытаетесь обслуживать index.html запросы к корню документа (т. е. домашней странице), вместо того, чтобы направлять запросы к index.php?

MrWhite 22.03.2022 01:23
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
1
23
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
RewriteRule ^(.*)$ index.php [QSA,L]

Измените квантификатор * на +, чтобы он соответствовал только непустым URL-путям, чтобы документ DirectoryIndex (т. е. index.html) обслуживался для запросов на домашнюю страницу вместо передачи запроса фронт-контроллеру ( то есть index.php). Или просто используйте точку (.) в качестве регулярного выражения, поскольку вы ничего не делаете с захваченным URL-путем. Например:

RewriteRule . index.php [L]

(Флаг QSA здесь не требуется.)

Хотя, поскольку вы используете шаблон переднего контроллера (т. е. направляете все запросы на index.php), вам, вероятно, следует вместо этого настроить соответствующий ответ для обслуживания от index.php?


В стороне:

DirectoryIndex index.html #to make index.html as index

Вы должны удалить, то, что вы считать является комментарием в конце строки, т.е. "#to make index.html as index". На самом деле это не комментарий. Apache не поддерживает комментарии в конце строки (поддерживаются только полнострочные комментарии). В этом случае #to, make, index.html, as и index будут рассматриваться как дополнительные аргументы директивы DirectoryIndex (так что на самом деле вы не получите ошибку).

См. мой ответ на следующий вопрос об использовании комментариев в конце строки:
Ошибка 500: .htaccess RewriteCond: разделители неверных флагов


Обновлено:

Альтернативное решение

Вместо этого попробуйте следующее (это заменяет файл весь.htaccess выше):

Options +FollowSymlinks
RewriteEngine On

# Explicitly disable rewriting for front controllers
RewriteRule ^index\.(php|html)$ - [L]

# Rewrite any request for anything that is not a file to "index.php"
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]

# Rewrite the homepage only to "index.html"
RewriteRule ^$ index.html [L]

Обертка <IfModule> не требуется. (Это ваш сервер, поэтому вы знаете, включена ли mod_rewrite или нет, и эти директивы необязательны.)

Перед тестированием убедитесь, что вы очистили кеш браузера.

prnt.sc/VjbLlWSjwvQj
Igor Borges 22.03.2022 01:09

Хорошо, так оно и было. Но до сих пор никаких изменений на главной странице :(

Igor Borges 22.03.2022 01:10

@IgorBorges Что вы подразумеваете под «так было»? Должно быть DirectoryIndex index.html (а не index.html as index DirectoryIndex как на скриншоте?)

MrWhite 22.03.2022 01:20

Нет, я говорю, что сделал именно то, что вы ответили, но это все равно не сработало...

Igor Borges 22.03.2022 15:04

@IgorBorges Я обновил свой ответ альтернативным решением.

MrWhite 22.03.2022 23:51

Идеальный! Это сработало. Спасибо большое друг!

Igor Borges 23.03.2022 14:59

Другие вопросы по теме