2017-06-11 6 views
0

Ich hosste meine Website http://tstspanama.com/ auf einem Apache-Server. Es wurde mit dem PHP-Framework Codeigniter erstellt. Ich kann nur die Homepage sehen, aber sonst nichts, die Links funktionieren nicht.Fehler 404: Die Links auf meiner Website funktionieren nicht, nur Index (mit Codeigniter &. Htaccess)

Wenn ich http://tstspanama.com/servicios gehen will, erhalte ich:

Nicht

gefunden

Die angeforderte URL /servicios nicht auf diesem Server

Hat jemand eine Idee, wie gefunden wurde ti fix das? Ich füge allen wichtigen Code bei.

Auf Antrag config (/var/www/tsts/application/config/config.php)

$config['base_url']  = isset($_SERVER['REQUEST_URI']) && $_SERVER['HTTP_HOST'] != 'localhost' ? 'http://'.$_SERVER['HTTP_HOST'].'/' : 'http://www.tstspanama.com/'; 

$config['index_page'] = ''; 

$config['uri_protocol'] = 'AUTO'; 

Auf meinem .htaccess

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteBase /tsts/ 
    RewriteCond $1 !^(index\.php|assets|images|css|js|robots\.txt) 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php/$1 [QSA,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. 
    ErrorDocument 404 /index.php 
</IfModule> 

<ifModule mod_php5.c> 
    php_value default_charset utf-8 
</ifModule> 

php_flag display_startup_errors on 
php_flag display_errors on 
php_flag html_errors on 

On/etc/apache2/sites-available/www.tstspanama.com

<VirtualHost *:80> 
    ServerName www.tstspanama.com 
    ServerAlias tstspanama.com 

    DocumentRoot /var/www/tsts 
    <Directory /> 
      Options FollowSymLinks 
      AllowOverride None 
    </Directory> 

    <Directory /var/www/tsts> 
      Options Indexes FollowSymLinks MultiViews 
      AllowOverride None 
      Order allow,deny 
      allow from all 
    </Directory> 

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 
    <Directory "/usr/lib/cgi-bin"> 
      AllowOverride None 
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
      Order allow,deny 
      Allow from all 
    </Directory> 

    ErrorLog /var/log/apache2/error.log 
    # Possible values include: debug, info, notice, warn, error, 
    # crit, alert, emerg. 
    LogLevel error 
    CustomLog /var/log/apache2/access.log combined 
    Alias /doc/ "/usr/share/doc/" 
    <Directory "/usr/share/doc/"> 
     Options Indexes MultiViews FollowSymLinks 
     AllowOverride None 
     Order deny,allow 
     Deny from all 
     Allow from 127.0.0.0/255.0.0.0 ::1/128 
    </Directory> 
</VirtualHost> 
+0

in Zukunft nie Bilder veröffentlichen anstelle von Fehlermeldungen oder Codes. Die Suchmaschine dieser Website indexiert nur Text. Bearbeitet. – Sparky

Antwort

0

Wenn Sie RewriteBase hinzufügen, sollten URL mit, so entfernen Sie es oder / verwenden:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteBase/
    RewriteCond $1 !^(index\.php|assets|images|css|js|robots\.txt) 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php/$1 [QSA,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. 
    ErrorDocument 404 /index.php 
</IfModule> 

<ifModule mod_php5.c> 
    php_value default_charset utf-8 
</ifModule> 

php_flag display_startup_errors on 
php_flag display_errors on 
php_flag html_errors on 
+0

Ich habe eigentlich als 'RewriteBase/tsts /'. Warum sollte ich es ändern? Ich verstehe nicht sehr gut, wie das funktioniert –

+0

Wenn Ihr ** .htaccess ** mit demselben Verzeichnis von index.php existiert, ist es nicht erforderlich. 'RewriteBase' fügt Ihrem Pfad ein Präfix hinzu. Mit anderen Worten, wenn Sie versuchen, ** http: //tstspanama.com/servicios** zu laden, und Sie haben 'RewriteBase/tsts /', versuchen Apache, index.php aus dem aktuellen Verzeichnis + '/ tsts /' Ordner zu laden. Versuchen Sie es? –

Verwandte Themen