htaccess (nessun reindirizzamento) [REWRITEURL] (dalla cartella a index.php)

StackOverflow https://stackoverflow.com/questions/807630

  •  03-07-2019
  •  | 
  •  

Domanda

Voglio solo ottenere un rapido reindirizzamento htaccess. vale a dire:

domain.com/subfolderGreen - > domain.com/index.php?folder=subfolderGreen

(nota che la sottocartella Verde esiste effettivamente)

Ho provato ma non sono riuscito a raggiungere la regex necessaria.

Grazie. a.

AGGIUNTO:

Mi dispiace, voglio che funzioni per qualsiasi sottocartella, non solo per " sottocartellaVerde " Sto usando

RewriteRule ^ / ([^ /] +) /? $ /index.php?folder=$1 [L]

ma non funziona. qualche indizio?

È stato utile?

Soluzione

Penso che il tuo esempio provocherebbe un ciclo infinito poiché /index.php corrisponde a quello che stai facendo. Prova questo:

RewriteRule ^([A-Za-z0-9]+)/?$ /index.php?folder=$1 [L]

Se vuoi che funzioni per tutte le directory esistenti, probabilmente funzionerà anche questo.

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+)/?$ /index.php?folder=$1 [L]

Altri suggerimenti

RewriteRule ([^/]+)$ index.php?folder=$1

Penso che farà il trucco.

RewriteRule presenta alcuni problemi confusi quando viene utilizzato in .htaccess che richiede l'aggiunta di un RewriteBase.

Quali errori / problemi stai riscontrando? Se vuoi essere sicuro di come reindirizzare l'aggiunta di una [R] spesso può aiutare con il debug.

Finalmente ... esiste davvero la sottocartellaGreen o no? Se esiste, ciò potrebbe causare alcuni problemi.

Credo che sia:

RedirectMatch 301 domain.com/(.*) domain.com/index.php?folder=$1
RewriteEngine on
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /(([^/\ ]+/)*)/+([^\ ]*)
RewriteRule ^ /%1%3 [L,R=301]
RewriteRule ^([^/]+)/?$ index.php?folder=$1 [L]

La riga 2 gestirà il caso se qualcuno accede a website.com/mypage/////, per impostazione predefinita su website.com/mypage/ invece (penso)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top