Moje aktualne adresy URL wyglądają tak [mysite]index.php/[rest of the slug]
.
Chcę usunąć index.php
te adresy URL.
mod_rewrite
jest włączony na moim serwerze Apache2. W config
,$config['index_page'] = '';
Mój .htaccess
plik główny Codeignitor zawiera,
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
Ale nadal nie działa. Gdzie się mylę?
php
.htaccess
codeigniter
apache2
Nihar Sarangi
źródło
źródło
Odpowiedzi:
Spróbuj wykonać następujące czynności
Otwórz config.php i wykonaj następujące zamiany
do
W niektórych przypadkach domyślne ustawienie
uri_protocol
nie działa prawidłowo. Po prostu wymieńprzez
.htaccess
Uwaga: kod .htaccess zależy od serwera hostingowego. Na jakimś serwerze hostingowym (np: GoDaddy) potrzebujesz dodatkowego? w ostatniej linii powyższego kodu. W odpowiednim przypadku następujący wiersz zostanie zastąpiony ostatnim wierszem:
źródło
RewriteRule ^(.*)$ index.php/$1 [L]
ale nadal mogę wyświetlić stronę w obu kierunkach domain.com/about-us, domain.com/index.php/about-us i domain.com/index.php?/about-us, które generują Błąd SEO, tj. Zduplikowany tag tytułu i zduplikowany opis w meta$_POST
lubisset($_POST)
nie działa po dodaniu tego.Krok: -1 Otwórz folder „application / config” i otwórz plik „config.php”. znajdź i zamień poniższy kod w pliku config.php.
Krok: -2 Przejdź do folderu CodeIgniter i utwórz .htaccess
Krok: -3 Wpisz poniższy kod w pliku .htaccess
Krok: -4 W niektórych przypadkach domyślne ustawienie uri_protocol nie działa poprawnie. Aby rozwiązać ten problem, otwórz plik „application / config / config.php”, a następnie znajdź i zamień poniższy kod
To wszystko, ale na serwerze wampa nie działa, ponieważ rewrite_module domyślnie jest wyłączony, więc musimy go włączyć. w tym celu wykonaj następujące czynności
Oryginalna dokumentacja
Przykładowy link
źródło
Krok 1 :
Dodaj to w pliku htaccess
Krok 2 :
Usuń index.php w konfiguracji codeigniter
Krok 3 :
Zezwalaj na zastępowanie htaccess w konfiguracji Apache (polecenie)
i edytuj plik i zmień na
dla folderu www
Krok 4 :
Włączono przepisywanie modów Apache (polecenie)
Krok 5:
Uruchom ponownie Apache (polecenie)
źródło
posługiwać się
jeśli masz adres URL w tym zamówieniu site.com/index.php/class/method/id
źródło
RewriteRule .* index.php/$1 [PT,L]
- to nie przejdzie ścieżki URL, chyba że zmieniszRewriteRule
wzorzec z.*
na(.*)
. Jeśli jednak używasz,$config['uri_protocol'] = 'REQUEST_URI';
i tak nie ma to znaczenia.źródło
na swoim htaccess użyj tego,
Mam nadzieję że to pomoże.
źródło
Istnieją dwa kroki:
1) Edytuj config.php
Do
2) Utwórz / edytuj plik .htaccess
źródło
zrobić
.htaccess
plik i umieścić ten kodzmiana
usuń
index.php
obecny wconfig.php
plikuźródło
1. Utwórz nowy plik .htaccess w katalogu głównym.
2. Przejdź do pliku config.php i zmień z
$config['index_page'] = 'index.php'
na$config['index_page'] = ''
źródło
Rozwiązałem to w 2 krokach.
źródło
spróbuj tego - może ci pomóc, ponieważ działa dla mnie.
umieść kod w swoim głównym pliku htaccess i upewnij się, że masz
w pliku konfiguracyjnym.
Daj mi znać, jeśli napotkasz jakiś problem.
źródło
Obejrzyj te filmy w celach informacyjnych https://www.youtube.com/watch?v=HFG2nMDn35Q
źródło
Cóż, wszystkie te odpowiedzi są dobre, ale dla początkującego (który robi to za pierwszym razem) są mylące. Istnieją inne pliki htaccess, które znajdują się w kontrolerze, ale musimy edytować lub dodać htaccess w głównym folderze projektu.
To jest twój folder codeigniter, w którym znajdują się pliki, takie jak aplikacja, system, zasoby, przesłane itp.
Zmień ten plik zgodnie z poniższym opisem:
i tak, oczywiście, musisz zmienić dwie linie kodu w pliku application / config / config.php
źródło
Rozwój i produkcja
źródło
Przede wszystkim musisz na silniku przepisywania serwera Apache on. ten link ci w tym pomoże
http://www.anmsaiful.net/blog/php/enable-apache-rewrite-module.html
to będzie twój plik .htaccess. teraz spróbuj. to ustawienie działa dla mnie.
źródło
możesz przejść do pliku config \ config.php i usunąć wartość index.php z tej zmiennej
utwórz plik .htaccess i wklej w nim ten kod.
dobra szansa
źródło
źródło
Tylko trzy kroki są wymagane, aby usunąć index.php z adresu URL w Codeigniter
1) Utwórz plik .htacess równolegle z posiadaczem aplikacji i po prostu skopiuj następujący kod:
2) Zmień $ config ['index_page'] na puste w config.php w folderze aplikacji, jak poniżej:
3) Włącz „rewrite_module” apache.
Zrestartuj swój apache i gotowe.
Szczegóły: http://sforsuresh.in/removing-index-php-from-url-of-codeigniter-in-wamp/
źródło
Myślę, że twoje wszystkie ustawienia są dobre, ale robisz, że zgubiłeś plik htaccess idź i dodaj htaccess do pliku projektu
folder_projektu-> htaccess
i dodaj ten kod do swojego htaccess
źródło
możesz przejść do pliku application \ config \ config.php i usunąć plik index.php
Zmień na
źródło
spróbuj tego RewriteEngine On
źródło
To działa dla mnie. Testowane w codeigniter 3.1.11, PHP 5.6.40 Używam virtualhost w mojej konfiguracji apache2 na serwerze testowym.
I /.htaccess content
źródło
Wykonaj następujące kroki, aby rozwiązać problem
1- Pobierz plik .htaccess stąd https://www.dropbox.com/s/tupcu1ctkb8pmmd/.htaccess?dl=0
2- Zmień nazwę katalogu CodeIgnitor w wierszu # 5. na przykład nazwa mojego katalogu to abc (dodaj swoje imię)
3- Zapisz plik .htaccess w głównym katalogu (abc) folderu codeignitor
4- Zmień uri_protocol z AUTO na PATH_INFO w pliku Config.php
Uwaga: Przede wszystkim musisz włączyć mod_rewrite z httpd.conf z apachi, usuwając komentarze
źródło
Użyj tego kodu. Zmień drugą linię, tak jak masz nazwę folderu. Gdzie plik index.php i aplikacja folderów znajdują się foldery systemowe. Przeważnie problemy występują z powodu drugiej linii. nie konfigurujemy nazwy folderu, w którym znajduje się projekt. Ważna jest druga linia. Usunięcie pliku index.php jest proste. RewriteEngine on RewriteBase / project_folder_name RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D RewriteRule. * Index.php / $ 0 [PT, L]
Przejdź do pliku controller / config.php.
config ['index_url'] = '';
Odniesienie do dalszych badań.
https://ellislab.com/expressionengine/user-guide/urls/remove_index.php.html
https://ellislab.com/blog/entry/fully-removing-index.php-from-urls
źródło
Oprócz tych odpowiedzi można po prostu dodać index.php lub edytować (jeśli już tam jest) - ze względów bezpieczeństwa i tak chcesz wyłączyć index.php, przed wyświetlaniem plików w katalogu swojej witryny - następnie zmień zawartość na
źródło
Drobna rzecz: (opcjonalnie)
Jedna krytyczna rzecz, na którą należy zwrócić uwagę:
Mój skrypt pliku vhosts: (przed)
Mój skrypt pliku vhosts: (po)
Zmierzyłem się z tym samym problemem, walczyłem przez około 1 dzień, wszystko było w porządku. Później, metodą prób i błędów, znalazłem to. Po usunięciu tego moja praca została wykonana. Adres URL nie wyszukuje teraz index.php :)
źródło
jeśli powyższe rozwiązanie nie zadziała to w folderze twojego projektu będą dwa pliki index.html i index.php, zmień nazwę index.html na index_1.html i przeglądaj swój projekt.
źródło
Zwróć uwagę na różnicę z dodanym „?” znak po „.php”, szczególnie w przypadku CodeIgniter:
vs.
To zależy od kilku innych rzeczy… jeśli nie działa, wypróbuj inną opcję!
źródło
Możesz usunąć index.php z adresu URL, umieszczając kod w .htaccess
Ścieżka do pliku: root> .htacess
Mam nadzieję, że to zadziała.
źródło
W CodeIgniter 3.16 w korzystaniu z htaccess do
& również
Oto kody:
application\config\config.php
aktWprowadzać zmiany
Do
źródło