J'ai une partie du domaine example.com/~mypart
. Dans ce dossier se trouve index.html. Si je visite example.com/~mypart/something
j'obtiens une erreur "Not Found".
Je veux que chaque adresse avec une chaîne après example.com/~mypart/
soit réécrite sur example.com/~mypart
(index.html) et conserve la chaîne afin que je puisse utiliser JavaScript dans index.html pour obtenir cette chaîne.
Ceci est un motif standard de contrôleur frontal . Vous pouvez utiliser la directive FallbackResource
de mod_dir dans le fichier .htaccess
dans /~mypart/.htaccess
. Par exemple:
FallbackResource /~mypart/index.html
(Si /~mypart
est un répertoire Web Apache par utilisateur , utilisez simplement /index.html
.)
De nombreux exemples utiliseront mod_rewrite, mais à moins que vous n'ayez des exigences de réécriture d'URL plus complexes, les opérations ci-dessus sont suffisantes (et recommandées).
Référence:
https://httpd.Apache.org/docs/2.4/mod/mod_dir.html#fallbackresource
Ajoutez les éléments suivants à votre fichier httaccess
:
# if folder does not exist
RewriteCond %{REQUEST_FILENAME} !-d
# if file does not exist
RewriteCond %{REQUEST_FILENAME} !-f
# redirect anything to
RewriteRule ^(.*)$ ~mypart/$1 [L]
Et après cela, une fois la page chargée, vous pouvez utiliser le code javascript suivant pour obtenir le fichier demandé.
var requestedResource = window.location.href.replace('example.com/~mypart/','');