J'ai le code suivant mon fichier htaccess :
RewriteCond %{REQUEST_URI} !^/admin/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !/admin
RewriteCond %{REQUEST_URI} !\.(?:jpe?g|gif|bmp|png|tiff|css|js)$ [NC]
RewriteRule ^(.*)$ /index.php [L]
Je connais le codage mais pas bon avec regex et je ne jouais pas beaucoup avec le fichier htaccess auparavant. J'ai trouvé cette réponse et aussi celle-ci mais cependant elles ne répondaient pas à mes exigences.
J'utilise les noms de répertoires comme permlinks. Par exemple, si l'utilisateur entre www.mydomaincom/about
un code JavaScript extrait le nom du répertoire, le compare avec la base de données et interroge une page. Cela fonctionne également lorsque l'adresse est écrite avec une barre oblique comme www.mydomaincom/about/
. Mais il y a un problème avec cette notation.
La chose étrange est que la page essaie de lire les données html de index.php qui est AOK. Mais... Les éléments qui ont besoin de sources comme <img>, <style>, <script>
ou de propriétés de style qui ont besoin de répertoires de sources, essaient de rechercher des sources à partir du about/
répertoire comme s'il existait.
Je recherche une solution htaccess qui fera en sorte que la www.mydomaincom/about/
notation se comporte de la même manière www.mydomaincom/about
sans affecter les attributs ou les propriétés de la source.
Vous avez trop de lignes dans votre code :
RewriteCond %{REQUEST_URI} !^/admin/
RewriteCond %{REQUEST_URI} !/admin
Ceux-ci font apparemment la même chose, mais ils ne le font pas.
Le premier fait " Si ça ne commence pas ( ^
) par /admin
" Le second fait " si ce n'est littéralement pas /admin
"
Les deux ne sont pas ce que vous voulez :
RewriteCond %{REQUEST_URI} !^/admin
Cela fait "s'il ne commence pas par /admin
". Cela inclut également /admin/
, car cela commence par/admin
Le deuxième combo étrange est le suivant :
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\.(?:jpe?g|gif|bmp|png|tiff|css|js)$ [NC]
La première est "si ce n'est pas un fichier"
La seconde que vous faites "si ce n'est pas un css,js,png,etc"
Cette dernière ligne n'est pas nécessaire, car les types de fichiers sont des fichiers, vous vérifiez donc la même chose chose deux fois.
Troisièmement, vous voudrez peut-être transmettre l'url à votre index.php. Raccourcir et le passer à index.php ressemble à ceci :
RewriteCond %{REQUEST_URI} !^/admin
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?url=$1 [L]
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots