Проблема с доступом

Моя проблема: когда я создаю файл.htaccess, мой браузер показывает 403 Запрещено, мой код htaccess

Options SymLinksIfOwnerMatch
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/(img|css|port/.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)$ index.php?page=$1&id=$2 [L]

Мой мод перезаписи - это включить index.php, где есть проблема. Когда я удаляю или переименовываю htaccess, проблема исчезла, это моя конфигурация ServerAdmin webmaster@localhost

DocumentRoot /var/www
<Directory />
    Options FollowSymLinks
    AllowOverride All

</Directory>
<Directory /var/www/>
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride All
    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

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride All
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

2 ответа

У вас есть это в вашем.htaccess:

<IfModule mod_rewrite.c>

но вы не (или не опубликовали) подходящего

</IfModule>

Кроме того, вы можете просмотреть в журналах ошибок Apache (обычно /var/log/apache/error.log) более подробную информацию об обнаруженной ошибке 403. Если вы не можете выяснить, в чем заключается проблема, из журналов ошибок, вы можете добавить строки с ошибками в свой вопрос, и мы поможем понять, в чем дело.

Во-первых, вы должны четко описать свое состояние и конфигурацию, чтобы не вызвать недоразумение, чтобы узнать ваше состояние и конфигурацию.

Вы проверили свой phpinfo в Configuration > apache2handler > Loaded Modules, там должен быть написан mod_rewrite, показывающий, что mod_rewrite включен. Если нет, вы должны запустить эту команду:

sudo a2enmod rewrite

а затем перезапустите ваш Apache:

sudo service apache2 restart

Если вы сделали это. Попробуйте проверить ваше разрешение в вашем /var/www/. Обычно ошибка 403 означает, что у вашего файла неправильные разрешения, для папок установлено значение 755, а для файлов - 644.

Другие вопросы по тегам