apache mod_rewrite不能使用.htaccess文件

snu*_*les 5 linux .htaccess mod-rewrite amazon-web-services

好吧,我一直遇到一些关于aws或者某些东西的问题,这样我似乎无法让mod_rewrite工作.

仅出于测试目的,我已完成以下操作:

1使用aws控制台从向导部署新的ami 64位实例

2 yum安装了apache

3编辑/etc/httpd/conf/httpd.conf:这样

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
Run Code Online (Sandbox Code Playgroud)

好像

<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>
Run Code Online (Sandbox Code Playgroud)

4确保

LoadModule rewrite_module modules/mod_rewrite.so
Run Code Online (Sandbox Code Playgroud)

在文件中并取消注释.

5重启apache:

 sudo /sbin/service httpd restart
Run Code Online (Sandbox Code Playgroud)

6创建了两个新文件:

/var/www/html/test1.html
Run Code Online (Sandbox Code Playgroud)

包含:

this is test1!

/var/www/html/test2.html
Run Code Online (Sandbox Code Playgroud)

包含:

this is test2!
Run Code Online (Sandbox Code Playgroud)

7创建文件:

/var/www/html/.htaccess
Run Code Online (Sandbox Code Playgroud)

包含(IN TOTAL):

RewriteEngine on
RewriteRule ^test1\.html$ test2.html [L]
Run Code Online (Sandbox Code Playgroud)

8去了:

http://[my aws server]/test1.html
Run Code Online (Sandbox Code Playgroud)

我得到"这是测试1!"

我在这里做错了,但对于我的生活,我不知道是什么.任何帮助是极大的赞赏...

编辑:我在我的.htaccess文件的开头添加了无意义的字符/数字,并重新启动了apache(不是100%确定需要,但嘿......),什么都没发生.换句话说,我预计转到url [aws server] /test1.html会导致某种错误,但事实并非如此.我怀疑apache甚至没有读取.htaccess文件.

编辑:我在httpd.conf文件中添加了以下内容:

RewriteLog "/tmp/rewrite.log"
RewriteLogLevel 9
Run Code Online (Sandbox Code Playgroud)

当我重新启动apache时会创建该文件,但是当我进入我设置的任一页面时,都没有任何内容.我没有在这里做一些非常非常基本的事情,但我不确定是什么......

Jon*_*Lin 15

不确定这是否是你的问题的原因,但你不应该搞砸了

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
Run Code Online (Sandbox Code Playgroud)

线,它应该是这样的:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Deny from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

您应该将文档根目录添加为不同的容器:

<Directory /var/www/html/>
    Options FollowSymLinks
    AllowOverride All
    Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)