Estoy usando Apache 2.2, en centos OS para alojar mi aplicación reactjs... en mi App.js tengo este código
import React from "react"; import { createBrowserHistory } from "history"; import { BrowserRouter, Route, Switch} from "react-router-dom"; import axios from "axios"; // import { useSelector } from "react-redux"; // core components import AuthLayout from "layouts/Auth.js"; import RtlLayout from "layouts/RTL.js"; import AdminLayout from "layouts/Admin.js"; import LoginPage from "views/Pages/LoginPage"; import User from "layouts/User"; import "assets/scss/material-dashboard-pro-react.scss?v=1.10.0"; import moment from 'moment' require('moment-timezone') moment.tz.setDefault('Africa/Nairobi') const App = () => { const hist = createBrowserHistory(); axios.defaults.baseURL = `https://myurl.com:8443/strategy/api/`; return ( <BrowserRouter history={hist}> <Switch> <Route path="/rtl" component={RtlLayout} /> <Route path="/auth" component={AuthLayout} /> <Route path="/admin" component={AdminLayout} /> <Route path="/user" component={User} /> <Route path="/" component={LoginPage} /> </Switch> </BrowserRouter> ); } export default App;Luego uso la compilación de hilo y todo en mi carpeta de compilación se mueve a mi carpeta DocumentRoot /var/www/html/stratex
En este /var/www/html/stratex también tengo un archivo .htaccess y en eso tengo
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /subdirectory RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule . /index.html [L] </IfModule>Después de esto, reinicié mi servidor:
sudo service httpd restartCuando voy a /admin/dashboard está bien y cuando presiono actualizar obtengo
The requested URL /admin/dashboard was not found on this server.También tengo otro enlace /usuario/panel que se carga bien pero al actualizar dice
The requested URL /user/dashboard was not found on this server¿Alguien se ha encontrado con este problema? Veo mucho en línea sobre el archivo .htaccess que soluciona el problema, pero no me ha funcionado en absoluto. También agregué esta línea en mi httpd.conf
LoadModule rewrite_module modules/mod_rewrite.soCualquier recomendación/ayuda será apreciada.
Para resolver esto, agregué esto en mi virtualhost
<Directory /var/www/html/stratex> AllowOverride All </Directory>Seguí este tutorial.
Y mi .htaccess se ve así:
RewriteEngine On RewriteBase /subdirectory RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule . /index.html [L]