.htaccess RewriteCond Fall Ebene 2 folder = info umschreiben
-
05-07-2019 - |
Frage
Ich wollte .htaccess
einstellen neu zu schreiben:
example.com/bla/info/
example.com/info/index.php?q=bla
example.com/bla/info/txt/
example.com/info/index.php?q=bla&t=txt
ich den Browser noch Anzeige wollte:
example.com/bla/info/txt/
Ich wollte nicht in der Ebene 2 umschreibt umschreiben, wie:
example.com/bla/xxx/
oder
example.com/ccc/zzz/aaa/
und
example.com/silly/info/
würde sowie
arbeitenexample.com/strange/info/mytxt/
Hat das Sinn?
Jede Hilfe?
Lösung
Wenn Sie Ihr Muster mit ^ beginnen und es mit $ enden, wird die Regel nur dann, wenn die gesamten Zeichenfolge Streichhölzer anzuwenden.
RewriteRule ^/bla/info/$ /info/index.php?q=bla
RewriteRule ^/bla/info/txt/$ /info/index.php?q=bla&t=txt
Wenn Sie nicht die [R] Option verwenden, die URL im Browser angezeigt wird, was der Benutzer eingegeben werden.
Versuchen Sie, diese für allgemeine Zwecke zu machen? Wenn ja, können Sie Regex-Typ passende und Variablensubstitution verwenden. Um ‚bla‘ jeden String bis zum nächsten Slash (/) verwendet
([^/]+)
in Ihrem Muster und verweisen Sie mit $ 1 in Ihrer Substitution.
RewriteRule ^/([^/]+)/info/$ /info/index.php?q=$1
RewriteRule ^/([^/]+)/info/([^/]+)/$ /info/index.php?q=$1&t=$2
Ich empfehle die Apache Web-Seiten über mod_rewrite für weitere Informationen .
[Bearbeiten. die Regeln festgelegt, nicht die Hostnamen in dem Muster enthält, wie das ursprüngliche Plakat herausgefunden.]
-
bmb
Andere Tipps
Sie haben mich in der richtigen Spur.
i mit so etwas wie das endete:
RewriteRule ^([^/\.]+)/info/?$ example/info/index.php?q=$1 [L]
Dank viel