Jestem początkującym w Codeigniter i zobaczyłem samouczek CI i po prostu próbowałem zrobić prostą rzecz. Ściągnąłem CI i dodałem ten plik do katalogu kontrolera, ale to nie zadziała.
<?php
class site extends CI_Controller
{
public function index()
{
echo "Hello World";
}
function dosomething()
{
echo "Do Something";
}
}
?>
Kiedy próbuję uzyskać do niego dostęp za pomocą http: //..../index.php/site , otrzymuję wynik ... "nie określono pliku wejściowego" .... tak przy okazji, nazwałem plik site.php
codeigniter
php
koool
źródło
źródło
Odpowiedzi:
Po prostu dodaj ? znak po index.php w pliku .htaccess:
RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L]
i to zadziała!
źródło
RewriteRule ^(.*)$ /sub-directory/index.php?/$1 [L,QSA]
Hosting GoDaddy wydaje się być naprawiony
.htaccess
, ja sam działaRewriteRule ^(.*)$ index.php/$1 [L]
do
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
źródło
RewriteRule ^(.*)$ /sub-directory/index.php?/$1 [L,QSA]
Odpowiedź na to pytanie znalazłem tutaj ..... Problem dotyczył hostingu serwera ... Dziękuję wszystkim, którzy próbowali ... Mam nadzieję, że to pomoże innym
Wskazówki dotyczące instalacji GoDaddy
źródło
RewriteRule ^(.*)$ /sub-directory/index.php?/$1 [L,QSA]
RewriteEngine, DirectoryIndex w pliku .htaccess aplikacji CodeIgniter
Właśnie zmieniłem zawartość pliku .htaccess i, jak pokazano w poniższych linkach, odpowiadam. Próbowałem odświeżyć stronę (co nie zadziałało i nie mogłem znaleźć żądania do mojego kontrolera) zadziałało.
Następnie tylko z powodu moich wątpliwości cofnąłem zmiany, które wprowadziłem w moim .htaccess w moim folderze public_html, przywracając oryginalną zawartość .htaccess . Więc teraz wygląda następująco (tak było pierwotnie):
DirectoryIndex index.php RewriteEngine on RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ ./index.php?/$1 [L,QSA]
A teraz też działa.
Wskazówka: Wygląda na to, że reguły przepisywania nie zostały jasno skonfigurowane w kontekście serwera.
Moja struktura plików jest następująca:
A w sekcji
index.php
ustawiłem następujące ścieżki do systemu i aplikacji:$system_path = '../gheapp/system'; $application_folder = '../gheapp/application';
Uwaga: w ten sposób kod źródłowy naszej aplikacji staje się początkowo publicznie ukryty.
Proszę, jeśli znajdziecie coś złego w mojej odpowiedzi, skomentujcie i poprawcie mnie ponownie!
Mam nadzieję, że początkujący uznają tę odpowiedź za pomocną.
Dzięki!
źródło
Moja witryna jest hostowana na MochaHost. Trudno mi było skonfigurować plik .htaccess, aby móc usunąć plik index.php z moich adresów URL. Jednak po pewnym googlowaniu połączyłem odpowiedź w tym wątku z innymi odpowiedziami. Mój końcowy plik roboczy .htaccess ma następującą zawartość:
<IfModule mod_rewrite.c> # Turn on URL rewriting RewriteEngine On # If your website begins from a folder e.g localhost/my_project then # you have to change it to: RewriteBase /my_project/ # If your site begins from the root e.g. example.local/ then # let it as it is RewriteBase / # Protect application and system files from being viewed when the index.php is missing RewriteCond $1 ^(application|system|private|logs) # Rewrite to index.php/access_denied/URL RewriteRule ^(.*)$ index.php/access_denied/$1 [PT,L] # Allow these directories and files to be displayed directly: RewriteCond $1 ^(index\.php|robots\.txt|favicon\.ico|public|app_upload|assets|css|js|images) # No rewriting RewriteRule ^(.*)$ - [PT,L] # Rewrite to index.php/URL RewriteRule ^(.*)$ index.php?/$1 [PT,L] </IfModule>
źródło