Jak usunąć indeks.php z adresów URL?

Wszystkie moje adresy URL w mojej instalacji Magento wymagają indeksu.php w nich, jak:

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

Problem polega na tym, że system domyślnie linkuje do adresów URL typu

http://example.com/admin/
http://example.com/customer/account/login/
Które i tak wyglądają ładniej. Zakładam, że to problem z przepisaniem.htaccess, ale jako, że Majsterkowanie z tym w przeszłości dało mi 500, chciałbym was najpierw zapytać.

Zmiana ustawień SEO, przepłukanie pamięci podręcznej konfiguracji i reindeksowanie adresów URL nie zadziałały jak sugerowano tutaj.

Author: Community, 2012-05-07

8 answers

To może być stare, ale równie dobrze mogę napisać, czego się nauczyłem. Więc zrobiłem to w ten sposób.

---------->

Zanim zaczniesz, upewnij się, że moduł Apache rewrites jest włączony, a następnie wykonaj poniższe czynności.

1) Zaloguj się do obszaru administracyjnego Magento, a następnie przejdź do System > Configuration > Web.

2) Przejdź do zakładek Unsecure i Secure . Upewnij się, że niezabezpieczone i są bezpieczne - Base Url opcje zawierają nazwę domeny i nie pozostawiają ukośnika na końcu adresu URL. Przykład: http://www.yourdomain.co.uk/

3) będąc jeszcze na stronie Web , przejdź do zakładki Search Engine Optimization i wybierz YES pod opcją Use Web Server Rewrites.

4) Przejdź ponownie do zakładki Secure i wybierz Yes {[9] } na użyj bezpiecznych adresów URL w interfejsie opcja.

5) Teraz przejdź do katalogu głównego swojej witryny Magento i użyj tego kodu dla swojego .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>

Save the .htaccess i zastąp oryginalny plik. (PAMIĘTAJ, ABY WYKONAĆ KOPIĘ ZAPASOWĄ ORYGINAŁU .plik htaccess zanim się nim zajmiesz!!!)

6) Teraz przejdź do System > Zarządzanie pamięcią podręczną i wybierz wszystkie pola i upewnij się, że akcje jest ustawione na Refresh , a następnie submit. (To oczywiście odświeży Cache.)

---------->

Jeśli to nie zadziałało, wykonaj następujące dodatkowe kroki.

7) przejdź do System > Configuration > web ponownie. Tym razem poszukaj bieżącego zakresu konfiguracji i wybierz swoją stronę z menu rozwijanego. (Jest to oczywiście ustawione na domyślną konfigurację)

8) upewnij się, że pola Unsecure i Secure zawierają tę samą domenę, co poprzedni domyślny plik konfiguracyjny.

9) przejdź do Wyszukiwarki Zakładka optymalizacja silników i wybierz Yes pod sekcją Użyj Przepisań serwera www.

10) gdy adresy URL są takie same i włączone jest przepisywanie Zapisz tę stronę, a następnie wróć i upewnij się, że wszystkie są zaznaczone jako domyślne, a następnie zapisz ponownie w razie potrzeby.

11) Powtórz krok 6.

Teraz twój indeks.problem z php powinien być naprawiony i wszystko powinno być dobrze!!!

Mam nadzieję, że to pomoże i powodzenia.
 85
Author: Blowtar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-20 13:04:45

Wykonaj poniższe kroki, które Ci pomogą.

Krok 1: Przejdź do folderu głównego witryny, a znajdziesz tam plik .htaccess. Otwórz go za pomocą edytora tekstu i znajdź linię #RewriteBase /magento/. Po prostu zastąp go #RewriteBase / Wyjmij tylko 'magento/'

Krok 2: Następnie przejdź do panelu administracyjnego i włącz przepisywanie (Ustaw yes dla użyj przepisywania serwerów WWW). Znajdziesz go w zakładce System->Konfiguracja->Web - > Search Engine Optimization.

Krok 3: Następnie przejdź do strony zarządzania pamięcią podręczną (zarządzanie pamięcią podręczną systemu ) i odświeżyć pamięć podręczną i odświeżyć, aby sprawdzić witrynę.

 25
Author: Sankar Subburaj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-22 08:14:59

Musisz włączyć mod_rewrite w apache, aby czyste adresy URL działały

Jeśli mod_rewrite nie jest w phpinfo musisz go zainstalować przez

sudo a2enmod rewrite
sudo apache2ctl -l
W związku z tym, że nie jest to możliwe, nie jest to konieczne, ponieważ nie jest to konieczne.]}

Restart Apache

sudo service apache2 restart

W adminie Magento przejdź do System > Configuration > Web > search engine Optimization i zmień "Use Web Server Rewrites " na Yes

 9
Author: Akhilraj N S,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-12 07:21:22

Może to w Twoim .htaccess:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
 7
Author: ErJab,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-06 22:26:12

Cześć, spóźniłem się na imprezę.. chciałem tylko zaznaczyć, że instrukcje z http://davidtsadler.com/archives/2012/06/03/how-to-install-magento-on-ubuntu / były naprawdę przydatne.

Miałem zainstalowany Ubuntu server z Apache, MySql i Php, więc pomyślałem, że mogę przejść do nagłówka tworząc katalog, z którego Magento będzie serwowane z i osiągnąłem ten sam problem co OP, tzn. miałem ' index.PHP ' potrzebne we wszystkich adresach URL (lub dostałbym 404 nie znaleziono). I następnie wróciłem do instalacji i konfiguracji serwera HTTP Apache i po ponownym uruchomieniu apache działa idealnie.

Dla odniesienia, brakowało mi:

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

... oraz

sudo a2enmod rewrite
sudo service apache2 restart

Hope this helps

 2
Author: Jonno,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-28 12:34:58

Jeśli inne rozwiązania nie działają dla ciebie, spróbuj tego:

Krok 1: (jeśli instalacja jest w webroot)

Zastąp

    #RewriteBase /magento/

Z

    RewriteBase /

Krok 2:

Dodaj następujące linie (włącznie z exclude Admin, ponieważ backend potrzebuje indeksu.PHP wewnętrznie)

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]

Zaraz po

RewriteRule .* index.php [L] 

To działa dla mnie

Jeśli nadal nie działa, sprawdź dwukrotnie konfigurację Magento: System - > Konfiguracja - > Www - > Wyszukiwarka Optymalizacja. Poprawki muszą być włączone.

 2
Author: Stefan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-02 19:17:38

Próbowałem wszystkiego na poczcie, ale nic nie działało. Następnie zmieniłem .fragment htaccess, który ErJab umieścił do przeczytania:

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

Powyższa linia naprawiła to dla mnie. gdzie * folder_name * jest głównym folderem magento.

Mam nadzieję, że to pomoże!
 1
Author: nanyaks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-14 14:02:01

Głównie Jeśli używasz systemu opartego na Linuksie, takiego jak "Ubuntu" i jest to sugerowane tylko dla użytkownika localhost, a nie dla serwera.

Wykonaj wszystkie kroki wymienione w poprzednich odpowiedziach. +

Sprawdź konfigurację Apache ' a. (AllowOverride All) Jeśli wartość AllowOverride jest none, zmień ją na All I ponownie uruchom apache.

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
Daj znać, jeśli ten krok komuś pomoże. Ponieważ może to zaoszczędzić czas, jeśli znajdziesz go wcześniej.

Tutaj wpisz opis obrazka

Jestem dodawanie dokładnych linii z mojego pliku htaccess w localhost. w celach informacyjnych

Wokół linii nr 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]

Obrazy są dla niektórych użytkowników, którzy łatwo rozumieją z obrazka tekst:

Tutaj wpisz opis obrazka

 1
Author: Suyash Kumar Bharti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-11 07:51:34