2016-08-11 2 views
0

Ich habe ein Problem mit URL-Umschreiben und HTAccess. Ich habe eine URL wie www.example.com/index.php?fc=module&module=mymodule&controller=name&id=35 aber es ist zu komplex für Leute, also möchte ich es ändern. Ich habe ein Verzeichnis in meinem Gastgeber wie example.com/web/title-for-name/, wo ich diese .htaccess setzen:htaccess URL Rewrite funktioniert nicht in der Produktion, funktioniert aber lokal

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteRule ^(.*)$ index.php?fc=module&module=mymodule&controller=name&id=35$1 [L,NC] 

Ich habe es in meinem lokalen getestet und es scheint zu funktionieren, aber wenn ich es in der Produktion testen umleiten mich nur meine URL zu ändern . Mod-Rewrite ist aktiviert, weil mein Web andere URLs umschreibt. Außerdem ist AllowOverride auf All eingestellt. Der Hauptunterschied zwischen meiner lokalen und der Produktion besteht darin, dass ich Varnish nicht verwende.

+0

Dies würde _append_ jeden zusätzlichen URL-Pfad auf das Ende der substituierten URL, als Teil des Parameters 'id' - ist das die Absicht? Ansonsten ist nichts an der Direktive falsch, die ein _externes Redirect_ verursachen würde. Die Verwendung von Varnish könnte die Ursache dafür sein. – MrWhite

+0

Ja, aber es könnte besser werden. Ich möchte die GET-Vars der Url anhängen, aber es fügt auch den index.html-Teil an, der unbrauchbar ist. – Serpes

+1

Wenn Sie die GET-Variablen anhängen möchten, benötigen Sie das Flag "QSA" (Query String Append). Der URL-Pfad, wie er durch das 'RewriteRule'-Muster abgeglichen wird, schließt die Abfragekette aus. (Es sieht nicht so aus, als ob Sie die "$ 1" -Rückreferenz erfassen müssten.) – MrWhite

Antwort

0

Ich habe dieses Problem gelöst. Es gab einen URL-Rewrite vor mir, der die Domain .es zu .com änderte und den Rest meiner URL änderte, also änderte ich gerade den Link, den ich verwende, zu der Domain .com.

Danke an alle.

Verwandte Themen