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)