kann einen Teil der Erklärung hier: https://stackoverflow.com/a/11711948/851273
Der Kern ist, dass ein Umschreiben ausschließlich auf dem Server geschieht, ist der Client (Browser), um es blind. Der Browser sendet eine Anfrage und bekommt Inhalt, es ist nicht klüger, was auf dem Server passiert ist, um die Anfrage zu bedienen.
Eine Weiterleitung ist ein Server Antwort auf eine Anfrage, die den Client (Browser) anweist, eine neue Anfrage zu senden. Der Browser fragt nach einer URL, diese URL befindet sich in der Adressleiste, der Server erhält diese Anfrage und antwortet mit einer Weiterleitung, der Browser erhält die Antwort und lädt die URL in die Antwort des Servers. Die URL in der Adressleiste ist nun die neue URL und der Browser sendet eine Anfrage für die neue URL.
Einfach intern auf dem Server neu schreiben tut nichts mit URLs in der Wildnis. Wenn google oder reddit oder eine andere Website einen Link zu www.abc.com/index.php?page=product_types&cat=88
hat, tut dies Ihre interne Server-Umschreibungsregel absolut nicht, weder für jemanden, der auf diesen Link klickt, noch für irgendeinen anderen Client, der diese URL aus irgendeinem Grund anfordert. Die gesamte Rewrite-Regel ändert intern etwas, das shoes
zu /index.php?page=product_types&cat=88
innerhalb des Servers enthält.
Wenn Sie möchten, dass es eine Anfrage für die index.php Seite mit allen Abfragezeichenfolgen gemacht wird, können Sie den Client (Browser) an umleiten, um die schönere URL umleiten. Sie müssen vorsichtig sein, da die Regeln neu geschrieben werden und Ihre Weiterleitung intern neu geschrieben wird, was eine Umleitung verursacht, die intern neu geschrieben wird, etc .., was eine Schleife verursacht und einen 500 Server Error auslöst. So können Sie sich speziell auf die Anforderung selbst entsprechen:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?page=product_types&cat=88
RewriteRule ^/?index.php$ /shoes [L,R=301]
Dies sollte nur verwendet werden, um es zu machen, so Links in der freien Natur an der richtigen Stelle spitzen bekommen. Sie müssen sicherstellen, dass der Inhalt die richtigen Links generiert. Das bedeutet, dass auf Ihrer Website der Link /shoes
statt /index.php?page=product_types&cat=88
verwendet wird.
Ja, ich würde dies in PHP tun. Der .htaccess könnte in der Theorie funktionieren, aber wenn Sie dies viele Male machen, wird es immer schwieriger, die Reihenfolge der Weiterleitungen zu verwalten, um eine Schleife zu vermeiden. Ich weiß, es tut weh, aber es könnte sich lohnen, das Request-Routing aufzubauen, um hübsche URLs innerhalb der Anwendung zu unterstützen. –
Ich denke, ich bekomme es @JoeMills.Aus SEO-Sicht, frage ich mich, ob es eine Gefahr bei der Umleitung der ursprünglichen URL -> gewünscht aus der App gibt? – Ray