Apache Mod_rewrite已启用,但不起作用
我已经读了一段时间了,我不能让它工作 Apache中启用了mod_rewrite,我已将AllowOverride更改为all 我的.htaccess如下所示:Apache Mod_rewrite已启用,但不起作用,apache,Apache,我已经读了一段时间了,我不能让它工作 Apache中启用了mod_rewrite,我已将AllowOverride更改为all 我的.htaccess如下所示: Options +FollowSymLinks RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)$ profile.php/?username=$1 [L] 我的apach
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ profile.php/?username=$1 [L]
我的apache2默认文件如下所示:
服务器管理员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
在我的网站上,我收到一条500内部服务器错误消息。请帮忙 尝试将代码更改为:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ profile.php/?username=$1 [L]
i、 e.关闭多视图
选项
PS:查看您的error.log看起来您的.htaccess中有一些特殊字符,在
RewriteEngine
关键字之前。“在我的网站上,我收到一条500内部服务器错误消息。”–然后查看服务器的错误日志!刚刚添加了error.log,如果它显示了什么,也会添加access.log。正如anubhava已经说过的,看起来你的文件有点混乱-\xef\xbb\xbf
,这似乎是一个字节顺序标记。如果apache在文件的第二行对此进行了投诉,那么看起来您在添加第一行或其他内容时使用的编辑器无法正确处理UTF-8编码的文件。再次将这些行键入(而不是复制粘贴)到新文件中,并将其保存为普通ASCII–这将解决此问题。@CBroe是的,正如anubhava所说。我在我的文本编辑器(Notepad++)中看不到它,但是当我在SSH中打开文件时,在开头有一些奇怪的字符。
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ profile.php/?username=$1 [L]