В моем текущем проекте я использую интерфейс React и приложение WordPress в качестве серверной части. В основном это функционально, за исключением одной проблемы: При доступе к определенному маршруту сайта напрямую (не с главной страницы) или при обновлении URL-адрес не найден.< /strong>
То есть, если я зайду на mysite.org, все будет работать нормально. Я могу получить доступ к другим маршрутам с помощью навигации на сайте. Но если я наберу mysite.org/contact, появится ошибка 404. То же самое происходит, если я обновляю что-либо, кроме домашней страницы.
Я подозреваю, что это связано с тем, как настроен мой .htaccess. Я видел другие сообщения, касающиеся маршрутизатора React и .htaccess, которые исправлены с помощью правил перезаписи, но эти решения мне не помогли, поскольку мне все еще нужно наличие правил перезаписи WordPress. Я новичок в Apache и редактирую .htaccess, так что простите меня, если это просто.
Насколько я понимаю, мне просто нужно, чтобы все вызовы WordPress передавались в index.php, и все остальное в React index.html.
Вот соответствующий фрагмент моей текущей настройки .htaccess:
# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
#Ideally, what is below would route any non-WordPress routes to the React app.
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . /index.html [L]
DirectoryIndex index.html index.php
Корневой каталог сервера выглядит следующим образом:
/ (корневой каталог)
--wp/ (папка WordPress. mysite.org/wp/wp-admin получает доступ к сайту администратора.)
--.htaccess
--index.html (встроенное приложение React)
--index.php Вот мой React Router:
В моем текущем проекте я использую интерфейс React и приложение WordPress в качестве серверной части. В основном это функционально, за исключением одной проблемы: [b]При доступе к определенному маршруту сайта напрямую (не с главной страницы) или при обновлении URL-адрес не найден.< /strong> То есть, если я зайду на mysite.org, все будет работать нормально. Я могу получить доступ к другим маршрутам с помощью навигации на сайте. Но если я наберу mysite.org/contact, появится ошибка 404. То же самое происходит, если я обновляю что-либо, кроме домашней страницы. Я подозреваю, что это связано с тем, как настроен мой .htaccess. Я видел другие сообщения, касающиеся маршрутизатора React и .htaccess, которые исправлены с помощью правил перезаписи, но эти решения мне не помогли, поскольку мне все еще нужно наличие правил перезаписи WordPress. Я новичок в Apache и редактирую .htaccess, так что простите меня, если это просто. Насколько я понимаю, мне просто нужно, чтобы все вызовы WordPress передавались в index.php, и все остальное в React index.html. Вот соответствующий фрагмент моей текущей настройки .htaccess:[/b] [code]# BEGIN WordPress # The directives (lines) between "BEGIN WordPress" and "END WordPress" are # dynamically generated, and should only be modified via WordPress filters. # Any changes to the directives between these markers will be overwritten.
#Ideally, what is below would route any non-WordPress routes to the React app. RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule . /index.html [L]
DirectoryIndex index.html index.php [/code] [b]Корневой каталог сервера выглядит следующим образом:[/b] / (корневой каталог) --wp/ (папка WordPress. mysite.org/wp/wp-admin получает доступ к сайту администратора.) --.htaccess --index.html (встроенное приложение React) --index.php [b]Вот мой React Router:[/b] [code]
[/code] Пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы или вам нужна дополнительная информация. Спасибо!!