Ich habe bereits mit PHP-Erweiterung über .htaccess
versteckt.Mod_rewrite für die Website übersetzen über htaccess
lang
Parameter könnten en
oder lt
werden, wenn lang
Parameterwert = en
als en/
nach Domain, dass hinzufügen sollte:
www.mysite.com/register.php?lang=en
->www.mysite.com/en/register/
Wenn lang
Parameterwert = lt
als sollte sei so:
www.mysite.com/register.php?lang=lt
->www.mysite.com/register/
Wenn ein anderer Parameter verwendet wird, sollte so sein:
www.mysite.com/etc.php?id=123¶m=abc
->www.mysite.com/etc/123/abc/
Mein .htaccess
wie folgt aussieht:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase/
# url is ONLY '/en' or '/lt' -> redirect to /en/ or /lt/ (adding slash)
RewriteRule ^(en|lt)$ $1/ [R=301,L]
# now all urls have en/ lt/ -> parse them
RewriteRule ^(en|lt)/(.*)$ $2?lang=$1&%{query_STRING} [L]
# no "R=301" here --------------------------------------^
RewriteCond %{THE_REQUEST} /+(.*?/)?(?:index)?(.*?)\.php[/\s?] [NC]
RewriteRule^%1%2/ [R=302,L,NE]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
aber jetzt ist es funktioniert falsch:
Wenn ichhabeEs leitet mich um www.mysite.com/register/?lang=en
Haben Sie irgendwelche Ideen?
Können Sie 'www.mysite.com/etc.php lang = de & id = 123 & param = abc' auch haben? Wenn ja, an welche URL soll es weitergeleitet werden? – anubhava
@anubhava Ja, immer wenn es 'lang = en' gibt, sollte es nach der Domain gehen:' www.mysite.com/de/ ... 'falls du gefragt hast:' www.mysite.com/ de/etc/123/abc/'. – Infinity
Hmm, das macht das Umschreiben wirklich schwierig, weil der erste Teil nach dem Hostnamen manchmal ein Sprachcode oder ein php Dateiname sein kann. Kann es '/ ft /' oder '/ de /' oder '/ it /' auch am Anfang wie '/ de /' in derselben URL geben? – anubhava