我几乎到处都读过,我禁用了MultiViews,a2enmods重写,以及我能找到的其他几乎所有内容。
我的.htaccess文件:
RewriteEngine on
RewriteRule ^PHP/ig/profile.php?user=([A-Za-z0-9]+)$ /PHP/ig/profile/$1 [L]
我的网站配置:
<VirtualHost *:80>
ServerAdmin admin@espionage.pw
DocumentRoot /var/www/espionage.pw/public_html
ServerName espionage.pw
ServerAlias www.espionage.pw
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/espionage.pw/>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
我的.htaccess文件位于/var/www/espionage.pw/ 我可以确认它正在被读取,因为当我输入随机字符时,尝试连接到我的网站时出错。
我只是不知所措。请提出任何可能有用的建议。我一整天都在这上班,我开始生气了......
感谢您的帮助。
编辑: 我在error.log中也有一个错误 [[8月22日星期五19:00:35.168341 2014] [谈判:错误] [pid 20230] [客户端myip:62633] AH00687:协商:发现文件匹配的请求:/var/www/espionage.pw/public_html/PHP / ig / profile(无可协商)。
我删除了MultiViews,所以这应该已经解决了。
我也尝试过:
RewriteRule ^/PHP/ig/profile.php$ /PHP/index.php [L]
没有将/PHP/ig/profile.php重写为/PHP/index.php
答案 0 :(得分:1)
您的文档根目录是:
DocumentRoot /var/www/espionage.pw/public_html
并说明您的.htaccess
文件位于文件夹中:
/var/www/espionage.pw
Apache永远不会提供来自/var/www/espionage.pw
的文件,因为它不是文档根目录的一部分,因此根本不会读取或使用您的.htaccess
文件。
如果要将.htaccess
文件限制在子文件夹中,则需要将/var/www/espionage.pw/public_html
文件放在{{1}}文件夹或该文件夹中的文件夹中。
答案 1 :(得分:0)
只是为了确定,因为没有张贴完整的.htaccess ...你放了吗
RewriteEngine On
在规则之前?