Voici mon fichier en cours htaccess:.htaccess Règles Réécrire multiples/priorisation
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.website\.com [NC]
RewriteCond %{HTTP_HOST} ([^.]+)\.website\.com [NC]
RewriteRule ^(.*)$ http://www.website.com/gotourl.php?urlid=?%1 [L]
RewriteRule ^(\w+)$ ./gotourl.php?urlid=$1 [NC,L]
RewriteRule ^(\w+)/$ ./gotourl.php?urlid=$1 [NC,L]
Le site en question est un raccourcisseur d'URL, je travaille pour le test/développement et un usage personnel. Le code ci-dessus n'est peut-être pas idéal car je ne connais pas très bien le .htaccess et je l'ai fait via googling et testing. Ce fait ce que je veux qu'il l'aspect de raccourcissement d'URL:
http://website.com/1234 -> http://website.com/gotourl.php?urlid=1234
http://website.com/1234/ -> http://website.com/gotourl.php?urlid=1234
Le problème est que je ne peux pas comprendre comment l'obtenir pour ignorer certains répertoires. Je veux des répertoires spécifiques pour aller à des pages spécifiques:
http://website.com/img (or) http://website.com/img/ -> http://website.com/img.php
http://website.com/img/1234 (or) http://website.com/img/1234/ -> http://website.com/viewimage.php?imgid=1234
Le principal problème est que je ne sais pas comment faire correctement cela et les façons que j'ai essayé de le faire serait toujours à réécrire:
http://website.com/gotourl.php?urlid=XXXX
ou se retrouver dans une boucle infinie de redirections au lieu d'aller à la page spécifique que je veux. Toute aide est appréciée.
Essentiellement, je suis à la recherche de l'aide à écrire mon htaccess pour effectuer les opérations suivantes:
URL user visits -> URL user sees
http://website.com/img -> http://website.com/img.php
http://website.com/img/XXXX -> http://website.com/viewimage.php?imgid=XXXX
http://website.com/XXXX -> http://website.com/gotourl.php?urlid=XXXX
Tous les chemins doivent travailler avec ou sans slash.
Vous cherchez de l'aide pour le faire avec peut-être un peu d'explication sur ce que signifie réellement chaque ligne pour que je puisse en tirer des leçons.
juste un FYI, 'http: // website.com/img' n'est pas un sous-domaine. Un exemple d'URL de sous-domaine: 'http: // test.website.com/img'. 'test' est le sous-domaine. 'img' est le chemin. Même 'www' est techniquement un sous-domaine d'un site Web. –
@JonathanKuhn - Duh. Je le sais aussi: P Désolé. Modification maintenant pour se débarrasser de tous ces sous-domaines. Je voulais dire répertoire: P – Jetteh22
Vous pourriez probablement juste utiliser une condition comme: 'RewriteCond% {REQUEST_FILENAME} .php -f' pour vérifier si le chemin demandé + .php existe et ensuite réécrire dans ce fichier. –