it-swarm.com.de

Wie entferne ich index.php von URLs?

Alle meine URLs in meiner Magento-Installation erfordern index.php, wie zum Beispiel:

http://example.com/index.php/admin/
http://example.com/index.php/customer/account/login/

Das Problem ist, dass das System standardmäßig auf URLs verweist

http://example.com/admin/
http://example.com/customer/account/login/

Was sowieso schöner aussieht. Ich gehe davon aus, dass es sich hierbei um ein Umschreibungsproblem in .htaccess handelt, aber da ich damit in der Vergangenheit nur 500s bekommen habe, möchte ich Sie zuerst fragen.

Das Ändern der SEO-Einstellungen, das Leeren des Konfigurationscaches und das erneute Indexieren von URLs haben nicht funktioniert wie hier vorgeschlagen .

30
delwin

Dies mag alt sein, aber ich kann das Gelernte genauso gut aufschreiben ... __ Also habe ich es trotzdem so gemacht.

---------->

Vergewissern Sie sich vor dem Start, dass das Apache-Überschreibungsmodul aktiviert ist, und führen Sie dann die folgenden Schritte aus.

1) Melden Sie sich in Ihrem Magento-Administrationsbereich an und gehen Sie zu System> Configuration> Web

2) Navigieren Sie zu den Registerkarten Unsecure und Secure. Stellen Sie sicher, dass die Optionen Unsecured und Secure - Base Url Ihren Domänennamen enthalten, und lassen Sie den Schrägstrich nicht am Ende der URL deaktiviert. Beispiel: http://www.yourdomain.co.uk/

3) Navigieren Sie auf der Seite Web zur Registerkarte Search Engine Optimization, und wählen Sie YES unter der Option Rewrites des Webservers verwenden aus. Möglichkeit.

4) Navigieren Sie erneut zur Registerkarte Secure (falls noch nicht vorhanden) und wählen Sie Yes in der Option Use Secure URLs in Front-End aus.

5) Gehen Sie nun zum Stammverzeichnis Ihres Magento-Websiteordners und verwenden Sie diesen Code für Ihren .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Speichern Sie den .htaccess und ersetzen Sie die Originaldatei. (BITTE STELLEN SIE SICHER, DASS SIE IHRE URSPRÜNGLICHE .htaccess-DATEI UNTERSTÜTZEN, BEVOR SIE MIT IHNEN MESSEN !!!)

6) Gehen Sie nun zu System> Cache Management, wählen Sie alle Felder aus und stellen Sie sicher, dass das Dropdown-Menü Aktionen auf Aktualisieren gesetzt ist, und senden Sie dann. (Dies wird natürlich den Cache aktualisieren.)

---------->

Wenn dies nicht funktioniert hat, folgen Sie bitte diesen zusätzlichen Schritten.

7) Gehen Sie erneut zu System> Configuration> web. Suchen Sie diesmal nach Current Configuration Scope und wählen Sie Ihre Website aus dem Dropdown-Menü aus. (Dies ist natürlich auf Default Config gesetzt)

8) Stellen Sie sicher, dass die Felder Unsecure und Secure dieselbe Domäne enthalten wie die vorherige Standardkonfigurationsdatei.

9) Navigieren Sie zur Registerkarte Search Engines Optimization und wählen Sie Yes unterhalb des Abschnitts Use Web Server Rewrites aus.

10) Sobald die URLs gleich sind und das Umschreiben aktiviert ist, speichern Sie diese Seite. Gehen Sie dann zurück und vergewissern Sie sich, dass sie alle als Standard markiert sind, und speichern Sie sie bei Bedarf erneut.

11) Wiederholen Sie Schritt 6.

Nun sollte dein index.php Problem behoben sein und alles sollte gut sein !!!

Ich hoffe das hilft und viel Glück.

86
Blowtar

Folgen Sie den unten stehenden Schritten, die Ihnen helfen werden.

schritt 1: Wechseln Sie zu Ihrem Site-Stammordner, und Sie finden die .htaccess-Datei dort. Öffnen Sie es mit einem Texteditor und suchen Sie die Zeile #RewriteBase /magento/. Ersetze es einfach durch #RewriteBase / nimm einfach das 'magento /' heraus 

schritt 2: Gehen Sie dann in Ihr Admin-Panel und aktivieren Sie die Rewrites (setzen Sie yes für Use Web Server Rewrites). Sie finden es unter System-> Konfiguration-> Web-> Suchmaschinenoptimierung.

schritt 3: Gehen Sie dann zur Cache-Verwaltungsseite (Systemcache-Verwaltung) und aktualisieren Sie den Cache und die Aktualisierung, um die Site zu überprüfen.

25
Sankar Subburaj

Sie müssen mod_rewrite in Apache aktivieren, damit saubere URLs funktionieren

wenn sich mod_rewrite nicht in phpinfo befindet, müssen Sie es mit installieren

Sudo a2enmod rewrite
Sudo Apache2ctl -l

Sie müssen das Vorkommen von AllowOverride none durch AllowOverride all ersetzen (in/etc/Apache2/sites-enabled/000-default).

Starten Sie Apache neu

Sudo service Apache2 restart

Im Magento-Admin gehen Sie zu System > Configuration > Web > search engine Optimization und ändern Sie "Use Web Server Rewrites" in Ja

9
Akhilraj N S

Wie wäre es damit in Ihrem .htaccess:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
7
ErJab

Wenn die anderen Lösungen für Sie nicht funktionieren, versuchen Sie Folgendes:

Schritt 1: (wenn sich Ihre Installation in Webroot befindet)

Ersetzen

    #RewriteBase /magento/

mit

    RewriteBase /

Schritt 2:

Fügen Sie folgende Zeilen hinzu (inklusive admin ausschließen, da das Backend intern die index.php erfordert)

RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://www.yourdomain.com/$1 [R=301,L]
RewriteRule ^index.php/(admin|user)($|/) - [L]
RewriteRule ^index.php/(.*) $1 [R=301,QSA,L]

gleich nach 

RewriteRule .* index.php [L] 

Das funktioniert für mich

Falls es immer noch nicht funktioniert, überprüfen Sie die Magento-Konfiguration: System-> Konfiguration-> Web-> Suchmaschinenoptimierung. Rewrites müssen aktiviert sein.

2
Stefan

Hallo, ich bin zu spät zur Party ... wollte nur darauf hinweisen, dass die Anweisungen von http://davidtsadler.com/archives/2012/06/03/3/how-to-install-magento-on-ubuntu/ waren wirklich nützlich.

Ich hatte Ubuntu-Server mit Apache, MySql und Php installiert, sodass ich dachte, ich könnte zur Überschrift Erstellen des Verzeichnisses wechseln, von dem aus [] Magento von [] aus bedient wird, und ich hatte das gleiche Problem wie das OP, dh ich hatte den Index. PHP 'in allen URLs benötigt (oder ich würde 404 nicht gefunden bekommen). Ich ging dann zurück zu Installation und Konfiguration des Apache HTTP-Servers und nach dem Neustart von Apache funktioniert es einwandfrei.

Als Referenz fehlte mir:

Sudo bash -c "cat >> /etc/Apache2/conf.d/servername.conf <<EOF
ServerName localhost
EOF"

... und

Sudo a2enmod rewrite
Sudo service Apache2 restart

Hoffe das hilft

2
Jonno

Ich habe alles in dem Post versucht, aber nichts hat funktioniert.

RewriteRule ^(.*)$ 'folder_name'/index.php/$1 [L]

Die obige Zeile hat es für mich behoben. Dabei ist * Ordnername * der Magento-Stammordner.

Hoffe das hilft!

1
nanyaks

Hauptsächlich Wenn Sie ein Linux-basiertes System wie "Ubuntu" verwenden, wird dies nur für localhost-Benutzer empfohlen, nicht für den Server. 

Befolgen Sie alle in den vorherigen Antworten genannten Schritte. + 

Überprüfen Sie die Apache-Konfiguration darauf. (AllowOverride All) Wenn der AllowOverride-Wert none ist, ändern Sie ihn in All und starten Sie Apache erneut.

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Lassen Sie mich wissen, ob dieser Schritt jemandem helfen kann. Da kann es Ihnen Zeit sparen, wenn Sie es früher finden.

 enter image description here

Ich füge die genauen Zeilen aus meiner Htaccess-Datei in localhost . Als Referenz hinzu 

Um die Linie Nummer 110

<IfModule mod_rewrite.c>

############################################
## enable rewrites

Options +FollowSymLinks
RewriteEngine on

############################################
## you can put here your magento root folder
## path relative to web root

#RewriteBase /

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Bilder sind für einige Benutzer gedacht, die anhand des Textes den Text leicht verstehen: 

 enter image description here

1