Maison > Questions et réponses > le corps du texte
J'ai du mal à réécrire les chemins de fichiers à l'aide de chaînes de requête
J'essaie d'obtenir une URL comme celle-ci :
https://url.com/products/1_Samsung_Galaxy
Et réécrivez la requête sur mon serveur comme ceci :
https:url.com/model.php?id=1&title=Samsung_Galaxy
Voici à quoi ressemble mon htaccess jusqu'à présent :
RewriteEngine On #rewrite no ending files to .php if file doesn't exist RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !products/ RewriteRule ^([^.]+)$ .php [NC,L] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^/products/([1-9]+)(.*)$ model.php?id=&title= [NC,L]
Avec la configuration actuelle, les requêtes sont envoyées à un fichier nommé products.php situé dans le même répertoire que model.php, mais semble être dans un répertoire différent car certains fichiers de script référencés dans products.php avec des chemins relatifs génèrent des exceptions sont des erreurs. où l'objet qu'ils contiennent n'existe pas.
En fait, mon principal problème est que je ne connais pas la syntaxe Apache ni son fonctionnement, et j'ai du mal à trouver des ressources pour en apprendre davantage sur Apache. Pour une raison quelconque, la documentation Apache n’est pas d’une grande aide. S'il existe une bonne ressource pour apprendre à écrire des fichiers Apache, j'aimerais également la consulter.
P粉4638244102024-01-02 10:59:01
Votre question est un peu vague, mais je pense que c'est ce que vous recherchez :
RewriteEngine On # rewrite /products/to /model.php/..... RewriteRule ^/?products/(\d+)(.*)$ /model.php?id=&title= [L] # rewrite to "...php" if such file exists RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^ %{REQUEST_URI}.php [L]
Ces règles fonctionneront si elles sont implémentées dans la configuration hôte du serveur http. Alternativement, si vous n'avez pas accès au fichier, vous pouvez y accéder dans un fichier de configuration distribué (".htaccess") situé dans le dossier DOCUMENT_ROOT
de l'hôte http.
Principales différences par rapport à votre tentative :
Vous avez également mentionné que vous n'êtes "pas familier avec la syntaxe Apache" et que vous auriez du mal à trouver des ressources pour l'apprendre.
Je recommande toujours la documentation officielle du module Apache. Ils sont d'excellente qualité et fournissent d'excellents exemples :
https://httpd.apache.org/docs/current/mod /mod_rewrite.html