.htaccess in Codeigner

CodeIgniter, Zend Framework, Cake PHP, Yii, symfony, Prado, Seagull, Kohana, MODX, eZ Components

Moderator: Moderatori

PHPistu
PHPRomania Supporter
Mesaje: 23
Membru din: Joi Mar 07, 2013 9:23 pm

.htaccess in Codeigner

Mesajde PHPistu » Mar Feb 04, 2014 1:01 am

Buna seara,

Am o problema,stiu ca este simpla, pe care eu nu o intleg:
De cand am pus fisierul .htaccess si accesez URL-ul fara segmentul "index.php" ,imi apare mesajul:

"Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, admin@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log."

Fisierul .htaccess este situat in folder-ul unde am CodeIgniter si arata asa:
a.
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

Am incercat si varianta:
b.
RewriteEngine On
RewriteBase /ci/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

Am setat de asemenea in config.php:
$config['index_page'] = '';
$config['base_url'] = '';

Ma puteti sfaturi de ce imi apare mesajul de mai sus cand accesez URL-ul fara "index.php"?
Cand elimin .htaccess, atunci script-urile imi ruleaza si este OK.
Va multumesc



ViezuREX
Senior Member
Mesaje: 502
Membru din: Joi Dec 13, 2012 1:35 pm

Re: .htaccess in Codeigner

Mesajde ViezuREX » Mar Feb 04, 2014 8:39 am

Daca ai gazduirea pe WHM (cPanel) si ai uploadat fisierele ca root este foarte probabil sa patesti chestia asta. Schimba-le owner-ul, daca este cazul, si vezi daca se rezolva problema.

PHPistu
PHPRomania Supporter
Mesaje: 23
Membru din: Joi Mar 07, 2013 9:23 pm

Re: .htaccess in Codeigner

Mesajde PHPistu » Mar Feb 04, 2014 11:14 am

ViezuREX scrie:Daca ai gazduirea pe WHM (cPanel) si ai uploadat fisierele ca root este foarte probabil sa patesti chestia asta. Schimba-le owner-ul, daca este cazul, si vezi daca se rezolva problema.

Nici macar nu am ajuns pana acolo,sunt pe localhost, am uitat sa mentionez.

double-bit
PHPRomania Supporter
Mesaje: 18
Membru din: Vin Iun 29, 2012 3:22 pm

Re: .htaccess in Codeigner

Mesajde double-bit » Mar Feb 04, 2014 12:33 pm

Problema e de la semnul intrebarii din rewrite, nu are ce cauta acolo. Incearca cu :

Cod: Selectaţi tot

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

in loc de

Cod: Selectaţi tot

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

Chiribuc
New Member
Mesaje: 2
Membru din: Dum Iul 14, 2013 7:04 pm

Re: .htaccess in Codeigner

Mesajde Chiribuc » Lun Feb 10, 2014 5:44 pm

1. - Verifică să ai mod_rewrite enable. (dacă nu te descurci întreabă-mă)
2. - Șterge index.php din

Cod: Selectaţi tot

$config['index_page'] = 'index.php';
aflat în application/config/config.php
3. - Copiază tot ce e mai jos în .htaccess-ul tău
4. - Cine nu știe ce e cu semnul întrebării după index.php în .htaccess să se abțină să dea sfaturi.

NOTĂ: E posibil să meargă și fără semnul întrebării dar sunt unele configurații de server care nu acceptă fără.

Cod: Selectaţi tot

<IfModule mod_rewrite.c>
 
  Options +FollowSymLinks
  RewriteEngine on
 
  # Send request via index.php
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?/$1 [L]
 
</IfModule>

PHPistu
PHPRomania Supporter
Mesaje: 23
Membru din: Joi Mar 07, 2013 9:23 pm

Re: .htaccess in Codeigner

Mesajde PHPistu » Mie Feb 26, 2014 11:18 pm

Multumesc tuturor care au contribuit cu sfaturi la problemea mea.Orice parere este binevenita.
Pt. Chiribuc cat si altii:
Nu am rezolvat inca problema.
Imi arata acum mesajul:" Not found - The requested URL /ci/example2/more was not found on this server." ..care este tot mai bine acum.
1. Am stres "index.php" din $config['index_page'] = 'index.php';
2. Cat despre faptul sa am grija sa am mod_rewrite enable, m-am documentat si eu sa vad ce insseamna asta si am tras concluzia ca nu este vb. aici cumva de config.php ci de setarile wampmanager, cred eu.
M-am uitat in documentatia lui PhpMyAdmin dar nu am reusit.
Rog mult pe Chiribuc sau altii daca puteti aici sa ma ajutati cum rezolv aici cu mod_rewrite enable.

PS. Mentionez inca odata ca atunci cand elimin .htaccess din folderul root CI , atunci script-urile imi ruleaza si sunt OK dar numai cu segmentul "index.php"iar eu doresc sa rulez script-uri fra acest segment.
Va multumesc.

sim72
PHPRomania Supporter
Mesaje: 22
Membru din: Mie Feb 26, 2014 10:43 am
Contact:

Re: .htaccess in Codeigner

Mesajde sim72 » Vin Feb 28, 2014 11:54 am

Daca nu ma insel, trebuie sa ai in tryicon (langa ceas) icon-ul de la WAMP. Dai ceva click-uri si ajungi pe la modulele care le incarca Apache-u.
Sunt o gramada de module si majoritatea sunt dezactivate. Cauti mod_rewrite si il bifezi.
Dupa ce ai activat mod_rewrite trebuie sa restartezi serverul apache si eventual verifica sa ai in fisierul de configurare al virtual host directiva AllowOverride All


Cod: Selectaţi tot

# Inlocuiesti /var/www/ cu ce ai tu pe server
<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

PHPistu
PHPRomania Supporter
Mesaje: 23
Membru din: Joi Mar 07, 2013 9:23 pm

Re: .htaccess in Codeigner

Mesajde PHPistu » Joi Mai 29, 2014 4:28 pm

sim72 scrie:Daca nu ma insel, trebuie sa ai in tryicon (langa ceas) icon-ul de la WAMP. Dai ceva click-uri si ajungi pe la modulele care le incarca Apache-u.
Sunt o gramada de module si majoritatea sunt dezactivate. Cauti mod_rewrite si il bifezi.
Dupa ce ai activat mod_rewrite trebuie sa restartezi serverul apache si eventual verifica sa ai in fisierul de configurare al virtual host directiva AllowOverride All


Cod: Selectaţi tot

# Inlocuiesti /var/www/ cu ce ai tu pe server
<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>


Am o alta problema care cred ca tine de .htaccess:
Am urcat site-ul pe server, poate fi accesata pagina index.php dar nu pot fi accesate celelalte pagini.
.htaccess-ul meu este:

<IfModule mod_rewrite.c>
RewriteEngine On
#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#This last condition enables access to the images and css folders, and the robots.txt file
RewriteCond $1 !^(index\.php|public|images|robots\.txt|css)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
--------------
Cand incerc sa accesez alte pagini ale site-ului imi apare mesajul:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, chris@bluepink.ro and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.


In fisierul config.php am variabila: $config['index_page'] = 'index.php';
Va multumesc

PHPistu
PHPRomania Supporter
Mesaje: 23
Membru din: Joi Mar 07, 2013 9:23 pm

Re: .htaccess in Codeigner

Mesajde PHPistu » Mar Iun 03, 2014 1:00 pm

PHPistu scrie:
sim72 scrie:Daca nu ma insel, trebuie sa ai in tryicon (langa ceas) icon-ul de la WAMP. Dai ceva click-uri si ajungi pe la modulele care le incarca Apache-u.
Sunt o gramada de module si majoritatea sunt dezactivate. Cauti mod_rewrite si il bifezi.
Dupa ce ai activat mod_rewrite trebuie sa restartezi serverul apache si eventual verifica sa ai in fisierul de configurare al virtual host directiva AllowOverride All


Cod: Selectaţi tot

# Inlocuiesti /var/www/ cu ce ai tu pe server
<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>


Am o alta problema care cred ca tine de .htaccess:
Am urcat site-ul pe server, poate fi accesata pagina index.php dar nu pot fi accesate celelalte pagini.
.htaccess-ul meu este:

<IfModule mod_rewrite.c>
RewriteEngine On
#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#This last condition enables access to the images and css folders, and the robots.txt file
RewriteCond $1 !^(index\.php|public|images|robots\.txt|css)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
--------------
Cand incerc sa accesez alte pagini ale site-ului imi apare mesajul:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, chris@bluepink.ro and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.


In fisierul config.php am variabila: $config['index_page'] = 'index.php';
Va multumesc



Ma poate ajuta cineva? va rog frumos.

sim72
PHPRomania Supporter
Mesaje: 22
Membru din: Mie Feb 26, 2014 10:43 am
Contact:

Re: .htaccess in Codeigner

Mesajde sim72 » Dum Iun 08, 2014 4:24 pm

Cred ca mai mult o sa te incurce raspunsul meu :)

Am testat .htaccess-ul tau pe un server la mine si totul merge perfect cu mentiunea ca am $config['index_page'] = '';

Daca $config['index_page'] = 'index.php'; sunt ceva imagini care nu se incarca insa si asa gaseste paginile.

PHPistu
PHPRomania Supporter
Mesaje: 23
Membru din: Joi Mar 07, 2013 9:23 pm

Re: .htaccess in Codeigner

Mesajde PHPistu » Joi Iun 19, 2014 12:58 am

sim72 scrie:Cred ca mai mult o sa te incurce raspunsul meu :)

Am testat .htaccess-ul tau pe un server la mine si totul merge perfect cu mentiunea ca am $config['index_page'] = '';

Daca $config['index_page'] = 'index.php'; sunt ceva imagini care nu se incarca insa si asa gaseste paginile.

Multumesc pt. raspuns si interes. Da, asa este, am realizat si eu pana la urma ca nu este de vina .htaccess.
Am incercat si varianta cu $config['index_page'] = '',dat tot imi apare mesajul mai sus mentionat.
Cred ca poate gresala este de la definirea base-url()-urilor. Ordinea fisierelor pe server este:

public_html
-application
-----controllers
-----------news.php(fisierul meu controller)
-----views
-----------news(folder)
----------------index(fisierul view)
----------templates(folder)
------ ---------header.php(fisierul view)
---------------footer.php(fisierul view)
- css
style.css
-js
autentificare.js
-system

In views/ templates/header.php...acolo unde nu functioneaza link-urile(asta este problema mea) am exprimat asa:
<script type="text/javascript" src="<?php echo base_url();?>js/autentificare.js" ></script>
<?php echo link_tag('css/style.css'); ?>
<nav id="headerLinks">
<div style="margin-right:3px;" class="links">
<a href='<?php echo base_url()."news/contact"; ?>'>Contact</a></div>
<div class="links"><a href='<?php echo base_url()."news/create"; ?>'>Inscrie anunt</a></div>
<div class="links"><a href='<?php echo base_url()."news/index"; ?>'>Home</a></div>
</nav>
Link-urile cu Contact; Inscriere anunt si Home nu merg..imi apare mesajul mentionat la inceput(cu 500 Internal Server Error .....etc)

In config.php am:
$config['base_url'] = '';
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
$config['url_suffix'] = '';
$config['javascript_location'] = 'js';
In routes.php am:
$route['default_controller'] = 'news/index'; (deocamdata atat si nimic mai mult, aici)
In system/core/Config.php ......la linia 78, am incercat ambele variante:
else
{
$base_url = 'ci'; ....SAU $base_url = '';
}
Nu stiu ce sa mai zic de nu-mi functioneaza link-urile(Contact, Inscriere... si Home), oricum pe localhost merge. Poate ma ajutati in continuare cu o sugeste. Va multumesc.

PHPistu
PHPRomania Supporter
Mesaje: 23
Membru din: Joi Mar 07, 2013 9:23 pm

Re: .htaccess in Codeigner

Mesajde PHPistu » Dum Iun 22, 2014 1:33 pm

Poate ma ajuta cineva, nu am reusit nici acum sa identific greselile. Multumesc.

Avatar utilizator
adyre
Senior Member
Mesaje: 491
Membru din: Lun Dec 06, 2004 9:36 pm
Localitate: Buzau
Contact:

Re: .htaccess in Codeigner

Mesajde adyre » Mie Noi 05, 2014 4:39 pm

Eu folosesc exact dupa cum urmeaza:
.htaccess:

Cod: Selectaţi tot

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

#    RewriteCond %{HTTP_HOST} !^www\.
#    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]
   
    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    ErrorDocument 404 /index.php
</IfModule>


Cod: Selectaţi tot

$config['base_url']   = '';
$config['index_page'] = '';


Daca in continuare ai problema, vezi in "default_controller" sa nu ai problema acolo...
Mai exact, stege tot din metoda index() { } si scrie doar un dump('x'), de exemplu


Atentie ca in cazul dat de mine ai mai multe lucruri: printre care si redirect din non-www la www. Am comentat ca sa nu te afecteze
Viata e prea scurta sa faci un lucru singur. Cere AJUTOR!


Înapoi la “Framework-uri PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 20 vizitatori