2013-05-26 5 views
6

Я читал об этом некоторое время, и я не могу заставить это работать.Mod_rewrite включен, но не работает

mod_rewrite включен в Apache и я изменил AllowOverride всем

Моя .htaccess выглядит следующим образом:

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

и мой файл по умолчанию для apache2 выглядит следующим образом: ServerAdmin вебмастера @ локальный

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 

На моем сайте я получаю сообщение об ошибке 500 внутреннего сервера. Пожалуйста помоги!

+1

_ «На моем веб-сайте я получаю сообщение об ошибке внутреннего внутреннего сервера.» _ - затем просмотрите журналы ошибок сервера! – CBroe

+0

Просто добавил error.log, добавив access.log, если он ничего не показывает. – TheMeisterSE

+0

Как уже сказал anubhava, похоже, что ваш файл немного испорчен - '\ xef \ xbb \ xbf', который, кажется, является байтом. Если apache жалуется на это во второй строке вашего файла, то похоже, что вы редактировали кодированный файл UTF-8 с редактором, который не справляется с этим правильно, добавляя первую строку или что-то в этом роде. _Type_ (не копировать и вставлять) эти строки в новый файл и сохранять его как обычный ASCII - это должно решить эту проблему. – CBroe

ответ

2

Попробуйте изменить свой код на этот:

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

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

т.е. переворачивать MultiViews варианты выключения.

PS: Глядя на ваш error.log, похоже, что у вас есть специальные символы в вашем .htaccess до RewriteEngine.

Смежные вопросы