Serveur web Apache ne m'autorise pas à rafraîchir sur /sur mais sur localhost sa fonctionne bien
J'ai livré l'une de mes projets et il fonctionne très bien. Cependant lors de la frappe de l'actualisation sur un itinéraire /sujet, il affiche L'URL demandée /sujet n'a pas été trouvée sur ce serveur.. Mais quand je le fais sur mon localhost hors d'un serveur web, il fonctionne très bien lors de l'actualisation et de l'avant/arrière boutons. Je suis l'aide de réagir-routeur pour mon côté client de routage.
Heres le côté client de routage, mais je doute de sa le problème
Router.run(routes, Router.HistoryLocation, function (Handler) {
React.render(<Handler/>, app);
});
Et mes voies ne sont là:
let routes = (
<Route>
<Route name = "App" path="/" handler = {App}>
<Route name="About" path="/about" handler = {About}/>
<DefaultRoute name="Projects" handler = {Projects}/>
</Route>
</Route>
);
Heres APACHE que je pense que je me suis cassé:
<Directory /var/www/>
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
Require all granted
#RedirectMatch ^/$ /apache2-default/
</Directory>
kkotwal.moi.conf:
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#
ServerName kkotwal.me
ServerAlias www.kkotwal.me
ServerAdmin webmaster@localhost
DocumentRoot /var/www/kkotwal.me/public_html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Vous devez vous connecter pour publier un commentaire.
Hey c'est en fait une chose assez commune.
Ce qui se passe est que vous devez obtenir de votre serveur apache pour ignorer toutes les chemins et juste envoyer toutes les demandes de
/*
à la racine de la place. De cette façon, votre front-end javascript peut ramasser jusqu'à la route sur le côté client et l'affichage de la vue correcte.Ce qui est parfois appelé "Mode HTML5" dans les différents serveurs web.
Dans apache de la façon dont vous le faire est d'ajouter une règle comme suit:
Ce que cela fait, c'est à dire à Apache pour servir tous les fichiers qui existent, mais si ils n'existent pas, juste servir
/index.html
plutôt qu'une erreur 404 not found..htaccess
fichier dans le même dossier que leindex.html
fichier, si vous pouvez l'envelopper dans un<IfModule mod_rewrite.c></IfModule>
tagEn cas de laravel, vous avez besoin de rendre le même point de vue où toutes les routes sont écrites pour réagir fichier. Laravel route est écrit que:
Itinéraire::get('{url}', function () {
de retour de vue('accueil'); })->where(['url' => '.*']);
bienvenue lame de fichier est:
app.js fichier pour la route
de sorte que chaque fois que vous actualisez sur votre route, il vous montrera l'accueil de la lame et de ses trajets en app.js fichier