2016-04-05 20 views
0

IZugabe gefälschte Foders mit Apache mod_rewrite mit

http://site.tld/fake1/fake2/page?options 

zu

http://site.tld/page?options 

im Grunde immer alles neu zu schreiben will, ist nach dem letzten Schrägstrich, also ohne

keine gefälschten foder Namen im Voraus zu wissen
+1

Trotz der Tatsache, dass Ihre Frage zu breit ist, kann dies auch eine schreckliche Idee ist, weil sie Inhalte zu vervielfältigen führen würde, die in der Bezeichnung von SEO ist, wirklich schlecht –

+0

tnx @ JustinIurman für Hinweis darauf, aber seit ich bin goint, um Links auf die Seite ohne Duplizierung zu erstellen (pear.php wird immer als fruits/pear.php verlinkt) Wie kann eine Suchmaschine andere Links erfinden? Ich glaube, dass ich das auch mit der meta-kanonischen URL beheben kann. – lhenry2k

+0

Also sei es. Sie können meine Antwort darüber sehen –

Antwort

0

Sie können Erfassungsgruppen verwenden und wie folgt ersetzen.

Regex:^(.*\.tld\/).*?([^\/]*$)$

Erläuterung:

  • ^(.*\.tld\/) Matches Teil bis Domain-Namen beginnen.

  • .*? paßt die fake1/fake2/

  • ([^\/]*$)$ den späten Teil der URL übereinstimmt.

Ersatz zu tun: Ersetzen durch Rückverweise Gruppen \1\2.

Regex101 Demo

+0

Regex ist in Ordnung, aber kann es nicht funktionieren innerhalb Mod-Rewrite: Regel ist nicht erfüllt (Ich habe auch mit [link] (http://htaccess.madewithlove.be/) überprüft, haben Sie jeder Hinweis? Sie haben auch die Domain verwaltet, aber innerhalb eines virtuellen Hosts wäre es nicht notwendig, oder Sie brauchten einen Anker, um innerhalb der Regex zu arbeiten? – lhenry2k

0

Erstens, stellen Sie sicher, dass Sie mod_rewrite und erlaubt .htaccess in Apache-Konfigurationsdatei aktiviert haben.

Dann setzen Sie diesen Code in Ihre .htaccess

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^.+?/([^/]+)$ /$1 [L,QSA] 
+1

Ich kann noch nicht stimmen .. perfekt! – lhenry2k

Verwandte Themen