【发布时间】:2013-07-25 23:36:25
【问题描述】:
好的,我在使用 aws 或其他方面遇到了一些问题,以至于我似乎无法让 mod_rewrite 工作。
仅出于测试目的,我做了以下操作:
1 使用 aws 控制台从向导部署新的 ami 64 位实例
2 yum 安装了 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
包含(总计):
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 时创建的,但是当我转到我设置的任一页面时,那里没有任何内容。我在这里没有做一些非常非常基本的事情,但我不确定是什么......
【问题讨论】:
-
请注意,我知道在 SO 上有很多像这样的问题。我一直在努力寻找解决我问题的方法。但如果有人能指出一个好的或完整的 mod_rewrite 故障排除问题,我将不胜感激!
-
只是为了让解决方案更明显,因为它包含在我下面的评论中:httpd.conf 文件已经有一个 /var/www/html 部分,其中包含“AllowOverride None”。我没有改变它,而是试图添加第二个,但被忽略了。经验教训:首先检查以确保您没有复制已经存在的部分! :)
标签: linux .htaccess mod-rewrite amazon-web-services