好的,我一直在遇到aws或某些问题,以至于我似乎无法使mod_rewrite正常工作。
仅出于测试目的,我做了以下工作:
1使用AWS控制台从向导部署新的AMI 64位实例
2百胜装的apache
3编辑了/etc/httpd/conf/httpd.conf:
<Directory /> Options FollowSymLinks AllowOverride None </Directory>
好像
<Directory /> Options FollowSymLinks AllowOverride All </Directory>
4确保
LoadModule rewrite_module modules/mod_rewrite.so
在文件中且未注释。
5重启apache:
sudo /sbin/service httpd restart
6创建了两个新文件:
/var/www/html/test1.html
包含:
this is test1! /var/www/html/test2.html
this is test2!
7.创建文件:
/var/www/html/.htaccess
包含(共TOTAL个):
RewriteEngine on RewriteRule ^test1\.html$ test2.html [L]
8去:
http://[my aws server]/test1.html
正在收到“这是test1!”
我在这里做错了事,但对于我的一生,我不知道该怎么办。任何帮助是极大的赞赏…
编辑:我在我的.htaccess文件的开头添加了无用的字符/数字,然后重新启动了apache(不是100%确定需要它,但是嘿…),什么也没发生。换句话说,我希望转到url [aws server] /test1.html会导致某种错误,但是不会。我怀疑apache甚至没有读取.htaccess文件。
编辑:我将以下内容添加到我的httpd.conf文件中:
RewriteLog "/tmp/rewrite.log" RewriteLogLevel 9
该文件是在重新启动apache时创建的,但是当我转到已设置的任一页面时,文件都没有进入该文件。我无法在这里做非常非常基本的事情,但是我不确定…
不知道这是否是造成问题的原因,但您不应该将
行,应该是这样的:
<Directory /> Options FollowSymLinks AllowOverride None Deny from all </Directory>
您应该将文档根目录添加为其他容器:
<Directory /var/www/html/> Options FollowSymLinks AllowOverride All Allow from all </Directory>