• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

./htaccess i CodeIgniter

VPS Starter Arubacloud
0 głosów
687 wizyt
pytanie zadane 26 czerwca 2015 w PHP przez Kazuhiro Użytkownik (910 p.)

Witajcie. Mam problem z ./htaccess. Plik znajduje się domyślnie w katalogu application. Podmieniłem jego zawartość na podaną w manualu

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

Przy próbie wprowazena oadreu bez index.php, pojaia się piękna strona not found. Dlaczego tak się dzieje?

3 odpowiedzi

+1 głos
odpowiedź 26 czerwca 2015 przez Comandeer Guru (599,730 p.)

A jest jakiś plik .htaccess w głównym katalogu? Bo ten w gruncie rzeczy tam przekierowuje jedynie.

komentarz 26 czerwca 2015 przez Kazuhiro Użytkownik (910 p.)

Mój plik default :

  GNU nano 2.2.6                                                     Plik: 000-default.conf                                                                                                                     

<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Restart czywiście robiłem :)

komentarz 26 czerwca 2015 przez efiku Szeryf (75,160 p.)

Dopisz tam pod DocumentRoot
EDIT: Znów mi się CKedytor sypie..

    <Directory "/var/www/html/">
        AllowOverride all
        Require all granted
    </Directory>

komentarz 26 czerwca 2015 przez HaKIM Szeryf (87,590 p.)
Efik, jak będziesz miał kiedyś wolne, nagraj poradnik o Symfony. Bo te, co teraz są ssą.

Te po polsku. Znaczy ja nie lubię tego jak je prowadzą. :)
komentarz 26 czerwca 2015 przez efiku Szeryf (75,160 p.)
A może nie umiesz angielskiego i dlatego ssą? ;d Wszystko tam jest łopatologicznie powiedziane. Średnio SF współpracuje na windowsie. Wszystkie linki już podałem.

Wracając do tematu, dodanie <Directory> ( to co napisałem wyżej ) powinno załatwić sprawę tych htaccesów.
komentarz 26 czerwca 2015 przez HaKIM Szeryf (87,590 p.)
Z dokumentacją Codeigniter sobie radze. Więc wątpie. :)

To chyba nie jest framework dla mnie. : c
0 głosów
odpowiedź 26 czerwca 2015 przez HaKIM Szeryf (87,590 p.)
edycja 26 czerwca 2015 przez HaKIM

W głównym folderze:

htdocs/yourfolder/.htaccess

<IfModule mod_rewrite.c>
  RewriteEngine On
  # !IMPORTANT! Set your RewriteBase here and don't forget trailing and leading
  #  slashes.
  # If your page resides at
  #  http://www.example.com/mypage/test1
  # then use
  # RewriteBase /mypage/test1/
  
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
 
<IfModule !mod_rewrite.c>
  # If we don't have mod_rewrite installed, all 404's
  # can be sent to index.php, and everything works as normal.
  # Submitted by: ElliotHaughin
 
  ErrorDocument 404 /index.php
</IfModule>

W config:

$config['base_url'] = 'http://localhost/nazwaTwojegoFolderu/';
$config['index_page'] = '';

W routes: [To już dobrowolnie]

$route['translate_uri_dashes'] = TRUE;//Zamienia _ na - w linkach url

Jeżeli nazwę folderu, gdzie masz pliki, masz z małej, wpisuj:

http://localhost/beautiful/ 

nie http://localhost/Beautiful/

Zobacz czy działa. :)

Tak btw. przez Ciebie coraz bardziej kocham CodeIgniter za prostotę. Z Symfony nawet nie mogę zacząć, szukałem views jaki leci do app_dev.php i nic. : D

komentarz 26 czerwca 2015 przez CzlowiekSkrypt Nałogowiec (26,340 p.)
Z innej beczki - znacie jakiś fajny tutorial dotyczący CodeIgniter? :)
komentarz 26 czerwca 2015 przez Kazuhiro Użytkownik (910 p.)
Mają fajny manual, w większości jest nawet przetłumaczony na język polski:

http://podrecznik.codeigniter.org.pl/
komentarz 26 czerwca 2015 przez Kazuhiro Użytkownik (910 p.)
O który plik konfiguracyjny Ci chodzi?

Mnie najbardziej zależało na modelu MVC, zwiększeniu przenośności witryny i drobnym ułatwieniom w projektowaniu aplikacji. Code Igniter było więc oczywistym wyborem :)
komentarz 26 czerwca 2015 przez HaKIM Szeryf (87,590 p.)

Scieżka do config.php:

twojaNazwa/application/config/config.php

0 głosów
odpowiedź 26 czerwca 2015 przez Kazuhiro Użytkownik (910 p.)

Żeby trochę uporządkować wątek piszę oddzielną wiadomość. Po pierwsze w pliku default.conf mam tylko:

Mój plik default :

  GNU nano 2.2.6                                                     Plik: 000-default.conf                                                                                                                     

<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Restart czywiście robiłem :)

Po drugie - o jaki plik konfiguracyjny chodzi? apache2.conf, default.conf?

komentarz 26 czerwca 2015 przez HaKIM Szeryf (87,590 p.)
Mam takie pytanko, bo już się pomotałem, nadal masz problem z .htaccess czy już o czymś innym piszesz? Pierwszy raz widze taki plik na oczy, a poprawnie skonfigurowałem .htaccess.
komentarz 26 czerwca 2015 przez Kazuhiro Użytkownik (910 p.)
Tak. cały czas piszę o tym samym. To ejst plik 000-default.conf
komentarz 26 czerwca 2015 przez efiku Szeryf (75,160 p.)

Kazuhiro, mi też nie chciał działać htaccess po przeniesieniu apki z SF na vps do syntaxa.
Problem rozwiązuje się ( jak wyżej napisałem ) poprzez dodanie AllowOverride all. 

Nasz plik 000-default: Podobnie jak twój tylko jest DocumentRoot /var/www ( ale ty masz jeszcze do html więc apka musi być w katalogu html )

Aby mi działał htaccess musiałem zrobić plik konfiguracyjny: http://pastebin.com/RXcH8hm9
U Ciebie do pliku default wystarczy dodać :
    <Directory "/var/www/html/">
        AllowOverride all
        Require all granted
    </Directory>

 

komentarz 26 czerwca 2015 przez Kazuhiro Użytkownik (910 p.)

Mój plik po modyfikacji:

<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
         <Directory "/var/www/html/">
                AllowOverride all
                Require all granted
         </Directory>

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

 

Ściągnąłem też dla testu projekt MZ ze strony. Oczywiście musiałem zmienić chmod na 777, ale projekt w ogóle nie chce się uruchomićnawet przyodwoływaniu się do plików html.

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at webmaster@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

komentarz 26 czerwca 2015 przez efiku Szeryf (75,160 p.)
edycja 26 czerwca 2015 przez efiku
Nie skopałeś czegoś? ;)
Bo ja zrobiłem dokładnie tak:
1. odapliłem vagranta i zmodyfikowałem 000-default na Twój z moją zmianą.
2. zrestartowałem apache
3. Przeniosłem projekt do /var/www/html  
4. Screen z przegladarki : http://prntscr.com/7ljpmw
5. Screen z htaccesa: http://prntscr.com/7ljq19
EDIT: Nic więcej nie robiłem niż masz w tych krokach ;)
:)
komentarz 26 czerwca 2015 przez Kazuhiro Użytkownik (910 p.)

Robiłem to co kazaliście. Możesz pokazać pełną treść swojego pliku default i apache2.conf?

Teraz serwer zaczął reagować na pliki .htaccess, chociaż nie tak, jakbym sobie tego życzył. Kiedy wpisuję

RewriteEngine on
RewriteRule plik plik.php

Mam Several Internet Error, bez względu na to jaki plik próbuję uruchomić. Kiedy z kolei wpisuję tak:

#Własna strona błędu 400
ErrorDocument 400 plik.php

#Własna strona błędu 401
ErrorDocument 401 plik.php

#Własna strona błędu 403
ErrorDocument 403 plik.php

#Własna strona błędu 404
ErrorDocument 404 plik.php

#Własna strona błędu 500
ErrorDocument 500 plik.php

 

To plik.php uruchamia się normalnie, jednak przy wpisaniu błędnego adresu drukuje mi po prostu napis "plik.php".

komentarz 26 czerwca 2015 przez efiku Szeryf (75,160 p.)
Moja zawartosc w default jest taka sama jak plik ktory zalaczyles wyzej... A apache.conf nie ruszalem (nic nie mowilem o apache2.conf by go ruszac ) Ps: jezlei ja zrobilem to w 3 krokach to zastanow sie co ty zmieniales jeszcze poza tym ;-)
komentarz 26 czerwca 2015 przez Kazuhiro Użytkownik (910 p.)
edycja 26 czerwca 2015 przez Kazuhiro

Przestuje Twój plik .htaccess, ale nie za bardzo wiem jak, tzn. jaki adres na jaki powinien zamienić? W testowym folderze mam tylko plik.php. W pliku tym umieściłem taki oto kod:

<?php
	$a = array(
		'hello' => 'hello world',
		'fajny' => 'to jest fajny napis'
		);
		$b = $_GET['b'];
		echo $a[$b];	
?>

 

Podobne pytania

+1 głos
3 odpowiedzi 513 wizyt
pytanie zadane 11 października 2016 w PHP przez Adux Obywatel (1,740 p.)
0 głosów
1 odpowiedź 198 wizyt
pytanie zadane 23 lipca 2016 w PHP przez DawidxD Użytkownik (810 p.)
0 głosów
1 odpowiedź 310 wizyt
pytanie zadane 6 sierpnia 2017 w Hostingi, domeny, usługi przez Maikel11 Początkujący (470 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...