我的问题是:当我创建 .htaccess 文件时,我的浏览器显示 403 Forbidden 我的 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>
答案1
你的 .htaccess 中有这个:
<IfModule mod_rewrite.c>
但你没有(或没有发布)匹配
</IfModule>
另外,您可以查看 Apache 的错误日志(通常是 /var/log/apache/error.log)以获取有关您看到的 403 错误的更多详细信息。如果您无法从错误日志中找出问题所在,您可以将包含错误的行添加到您的问题中,我们可以帮助您查看问题所在。
答案2
首先你要把你的情况和配置描述清楚,以免造成对方对你的情况和配置的误解。
您是否检查过 phpinfo 中的配置> apache2handler>已加载的模块,其中必须写入mod_rewrite显示 mod_rewrite 已启用。如果没有,您应该运行以下命令:
sudo a2enmod rewrite
然后重新启动 apache:
sudo service apache2 restart
如果你已经做了这些事情。尝试检查你的 /var/www/ 中的权限。通常,403 禁止错误意味着你的文件权限不正确,文件夹被设定为755和文件到644。