2015-04-21 9 views
5

Ich muss ?id= und &title= von dieser URL mit .htaccess-Datei entfernen.Wie ID und Titel von dieser URL entfernen?

URL jetzt - http://www.XXXX.com/video.php?id=XX&title=XXX-XXX-XXX

Was ich brauche - http://www.XXXX.com/video.php/XX/XXX-XXX-XXX

Ich habe bereits von allen Links entfernt .php.

+1

Und was hast du probiert? –

+0

Verwenden Sie Post-Methode, Think Sie versuchen dies mit Get –

+0

'RewriteRule^Video/([0-9] +)/([0-9a-zA-Z _-] +) $ video.php? Id = $ 1 & title = $ 2 [NC, L] 'das funktioniert nicht .. – Nilohn

Antwort

5

Nach htaccess Code wird tun, um Ihre Arbeit

//First Parameer 
    RewriteEngine On 
    RewriteRule ^([a-zA-Z0-9_-]+)$ video.php?id=$1 
    RewriteRule ^([a-zA-Z0-9_-]+)/$ video.php?id=$1 

    //Second Parameter 
    RewriteEngine On 
    RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)$ video.php?id=$1&title=$2 
    RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)/$ video.php?id=$1&title=$2 
+1

Ja, das ist viel besser als meine Version war. Nett. –

+0

Ich sehe nicht, warum das funktionieren sollte. Das OP möchte die Querystring entfernen. –

1

unten Code hinzufügen Ihre .htaccess Datei.

RewriteEngine on 
RewriteBase/
RewriteCond %{QUERY_STRING} ^id=(.*)\&title=(.*) 
RewriteRule (.*) /$1/%1/%2? [NC,L,R=301] 

Ausgang ist

http://www.XXXX.com/video.php/XX/XXX-XXX-XXX 

dieser Code arbeitet für mich Ich hoffe, es für Sie arbeitet.

+0

Ihre Regel wird für jede URL mit einem ID-und Titel-Parameter, nicht nur '/ video.php' passen –

+0

@MarioA Hey, ich bearbeite meinen Code jetzt funktioniert es mit jeder Datei nicht nur video.php Danke –

1

Um die Abfragezeichenfolgeflag Sie eine RewriteCond Anweisung wie folgt verwenden zugreifen müssen:

RewriteEngine on 
RewriteCond %{QUERY_STRING} id=([^&]+)&title=([^&]+) 
RewriteRule ^video.php$ video.php/%1/%2 [L,R=301] 

Das obige Beispiel funktioniert, wenn ID und Titel Parameter genau in der Reihenfolge Ihres Beispiel. Wenn in der Abfragezeichenfolge andere Parameter vorhanden sein können oder die Parameter in einer beliebigen Reihenfolge sein können, müssten Sie die Regeln anpassen.

+0

warum sollte es? 'RewriteRule^video.php $' passt nur '/ video.php' sonst nichts. –

+0

Hey Leute, es ist mein Fehler, sorry. Danke für den Hinweis. –

1

Vielen Dank für all diese Antworten. Subodh Ghulaxe haben eine gute Antwort geschrieben.

Aber das funktioniert Code für mich.

# To externally redirect /dir/foo.php?id=123&title=456 to /dir/123/456 
RewriteCond %{THE_REQUEST} ^GET\s([^.]+)\.php\?id=([^&]+)&title=([^&\s]+) [NC] 
RewriteRule^%1/%2/%3? [R,L] 

# To externally redirect /dir/foo.php?id=123 to /dir/123 
RewriteCond %{THE_REQUEST} ^GET\s([^.]+)\.php\?id=([^&\s]+)\s [NC] 
RewriteRule^%1/%2? [R,L] 

# To internally forward /dir/foo/12 to /dir/foo.php?id=12 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.+?)/([^/]+)(/[^/]+)?/?$ $1.php?id=$2 [L,QSA] 

RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)$ video.php?id=$1&title=$2 
RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)/$ video.php?id=$1&title=$2 

# To externally redirect /dir/foo.php to /dir/foo 
RewriteCond %{THE_REQUEST} ^GET\s([^.]+)\.php\s [NC] 
RewriteRule^%1 [R,L] 

# To internally forward /dir/foo to /dir/foo.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteCond %{QUERY_STRING} ^$ 
RewriteRule ^(.*?)/?$ $1.php [L] 

Sumurai8 beendet diesen Code in here (vollständige .htaccess-Code). Ich hoffe, dass dieser Code jemandem hilft.Für css, js, stellen Bilder sicher, absolute Pfade zu verwenden.