2016-06-22 2 views
0

Ich möchte alle Urls wie diesesRedirect mit .htaccess alle Dateien im Unterverzeichnis aber ausschließen das Unterverzeichnis selbst

www.example.com/uploads/video/video1.html zu www.example.com/video1 umleiten. html

www.example.com/uploads/video/video2.html

www.example.com/video2.html Aber möchte www.example.com/uploads/video/ halten, wie es ist .

Ich verwende diesen Code:

RewriteEngine on 
RewriteCond %{REQUEST_URI} !^uploads/video/$ 
RewriteRule ^uploads/video/(.*)$ /$1 [R=301,L] 

Aber das ist immer noch Umleiten www.example.com/uploads/video/ auch

Gibt es einen Fehler www.example.com/?

Antwort

1

Sie sind in der Nähe. Die * bedeutet null oder mehr Zeichen, weshalb es Uploads/Video/entspricht. Wenn Sie die + verwenden sieht es für einen oder mehrere, was bedeutet, Ihre Regel dort erfordert etwas nach uploads/Video/

RewriteEngine on 
RewriteCond %{REQUEST_URI} !^uploads/video/$ 
RewriteRule ^uploads/video/(.+)$ /$1 [R=301,L] 
+0

perfekt funktioniert es, dank zu sein. Nur eine Frage, auch wenn * zu Uploads/Video passt/warum der RewriteCond diese URL nicht vom Rewriterule ausschließt? – Startupper

+0

'RewriteCond% {REQUEST_URI}! ^/Uploads/video/$' aber dann muss man auch denken, gibt es immer einen Schrägstrich? Wenn Sie nicht sicher sind, machen Sie es optional 'RewriteCond% {REQUEST_URI}! ^/Uploads/video /? $' Aber der erste Grund, warum es nicht übereinstimmte, war, dass der führende Schrägstrich fehlte. – slapyo

+0

Verstanden, vielen Dank. – Startupper