2013-05-26 16 views
6

Przeczytałem od jakiegoś czasu i nie mogę tego uruchomić.Mod_rewrite jest włączony, ale nie działa

mod_rewrite jest włączona w Apache i zmieniłem AllowOverride wszystkim

Moje .htaccess wygląda tak:

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)$ profile.php/?username=$1 [L] 

i mój plik domyślny dla apache2 wygląda następująco: ServerAdmin webmaster @ localhost

DocumentRoot /var/www 
    <Directory /> 
      Options FollowSymLinks 
      AllowOverride all 
    </Directory> 
    <Directory /var/www/> 
      Options Indexes FollowSymLinks MultiViews 
      AllowOverride all 
      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 ${APACHE_LOG_DIR}/error.log 

    # Possible values include: debug, info, notice, warn, error, crit, 
    # alert, emerg. 
    LogLevel warn 

    CustomLog ${APACHE_LOG_DIR}/access.log combined 

error.log

[Sat May 25 20:13:21 2013] [alert] [client (ip)] /var/www/.htaccess: Invalid command '\xef\xbb\xbfRewriteEngine', perhaps misspelled or defined by$ 
[Sat May 25 20:13:21 2013] [alert] [client (ip)] /var/www/.htaccess: Invalid command '\xef\xbb\xbfRewriteEngine', perhaps misspelled or defined by$ 
[Sat May 25 20:13:22 2013] [alert] [client (ip)] /var/www/.htaccess: Invalid command '\xef\xbb\xbfRewriteEngine', perhaps misspelled or defined by$ 
[Sat May 25 20:13:23 2013] [alert] [client (ip)] /var/www/.htaccess: Invalid command '\xef\xbb\xbfRewriteEngine', perhaps misspelled or defined by$ 
[Sat May 25 20:14:56 2013] [alert] [client (ip)] /var/www/.htaccess: Invalid command '\xef\xbb\xbf', perhaps misspelled or defined by a module not$ 
[Sat May 25 20:14:57 2013] [alert] [client (ip)] /var/www/.htaccess: Invalid command '\xef\xbb\xbf', perhaps misspelled or defined by a module not$ 
[Sat May 25 20:14:59 2013] [alert] [client (ip)] /var/www/.htaccess: Invalid command '\xef\xbb\xbf', perhaps misspelled or defined by a module not$ 
[Sat May 25 20:14:59 2013] [alert] [client (ip)] /var/www/.htaccess: Invalid command '\xef\xbb\xbf', perhaps misspelled or defined by a module not$ 
[Sat May 25 20:15:04 2013] [alert] [client (ip)] /var/www/.htaccess: Invalid command '\xef\xbb\xbfRewriteEngine', perhaps misspelled or defined by$ 
[Sat May 25 20:15:04 2013] [alert] [client (ip)] /var/www/.htaccess: Invalid command '\xef\xbb\xbfRewriteEngine', perhaps misspelled or defined by$ 
[Sat May 25 20:15:20 2013] [alert] [client (ip)] /var/www/.htaccess: Invalid command '\xef\xbb\xbfRewriteEngine', perhaps misspelled or defined by$ 
[Sat May 25 20:15:20 2013] [alert] [client (ip)] /var/www/.htaccess: Invalid command '\xef\xbb\xbfRewriteEngine', perhaps misspelled or defined by$ 
[Sat May 25 20:15:58 2013] [notice] caught SIGTERM, shutting down 

Na mojej stronie pojawia się komunikat o błędzie 500 serwera wewnętrznego. Proszę pomóż!

+1

_ "Na mojej stronie pojawia się komunikat o błędzie wewnętrznego serwera o wartości 500." _ - następnie przejrzyj dzienniki błędów serwera! – CBroe

+0

Właśnie dodałem error.log, idąc, aby dodać access.log, jeśli coś pokazuje. – TheMeisterSE

+0

Jak już powiedziałeś anubhava, wygląda na to, że twój plik jest trochę pomieszany - '\ xef \ xbb \ xbf', który wydaje się być znacznikiem kolejności bajtów. Jeśli Apache narzeka na to w drugim wierszu pliku, wygląda na to, że edytowałeś plik zakodowany w UTF-8 za pomocą edytora, który nie obsługuje tego poprawnie podczas dodawania pierwszego wiersza lub czegoś podobnego. _Type_ (nie kopiuj i wklej) tych linii do nowego pliku ponownie i zapisz go jako zwykły ASCII - który powinien rozwiązać ten problem. – CBroe

Odpowiedz

2

Spróbuj zmienić swój kod do tego:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)$ profile.php/?username=$1 [L] 

tj włączyć opcje MultiViews off.

PS: Patrząc na error.log wygląda masz kilka znaków specjalnych w swojej .htaccess przed RewriteEngine hasła.

Powiązane problemy