htaccess (nessun reindirizzamento) [REWRITEURL] (dalla cartella a index.php)
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?
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)