当前位置: 首页 > 面试题库 >

apache mod_rewrite无法与.htaccess文件一起使用

洪弘毅
2023-03-14
问题内容

好的,我一直在遇到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
</Directory>

行,应该是这样的:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Deny from all
</Directory>

您应该将文档根目录添加为其他容器:

<Directory /var/www/html/>
    Options FollowSymLinks
    AllowOverride All
    Allow from all
</Directory>


 类似资料:
  • 问题内容: 我有一个自定义插件,可以在(请注意此处没有工具名)下生成源。所以我得到像…等的资源。 此格式完全不能更改,因此我将能够配置Intellij将其添加为源文件夹。到目前为止,我可以看到Intellij已添加为源文件夹。 请注意,我没有配置插件的选项! 更新1 :我不同意我必须将生成的源放置在工具名称文件夹下的事实。这可能是一个很好的约定,但是如果我只有一个生成器,是否不需要我将其放置在那里

  • 我试图写一个日志文件使用slf4j与log4j.我可以看到控制台中的日志。但它没有写入日志文件 这是我的log4js属性文件 我已经包括了slf4j-api-1.7。5.jar,slf4j-log4j12-1.7。5和log4j-1.2。8.jar在我的类路径中。 我用下面的方法写日志。 任何帮助我都将不胜感激。谢谢

  • 问题内容: 我的程序应该等待按下向左或向右箭头键,然后更改一个值,以便下次更新PaintComponent时,屏幕看起来有所不同。但是,运行该程序时,屏幕没有变化。 以下是变量声明: 这是主要的KeyListener声明: 这是用于绘画的方法: 当我运行该程序时,该程序会打印外壳,但是当我按箭头键时,屏幕上没有任何变化。 问题答案: 您需要先将关键侦听器添加到组件,然后才能调用它: 您还需要使组件

  • 问题内容: click事件可以正常运行,但是onmouseover事件不起作用。 问题答案: 您需要大写一些字母。

  • 问题内容: 我是AngularJS的新手,正在用记号表构建仪表板。 试图将dygraphs网站上的示例代码放在ng-repeat- list中,以进行测试。对于y中的每个x,期望有相同的样本图。不幸的是,该图没有绘制,只是轴,控制台没有显示任何错误。 如果我删除ng-repeat,尽管可以(单个图形)工作- dygraphs代码有效。当然,像我在这里那样直接在视图中绘制图形没有任何意义,但我仍然想

  • 我正在尝试用文件键上传一个HEIC文件。我应该指定哪种文件类型? 现在我有这个: 我在文件里找不到任何关于这个的东西,我的实验也不起作用。 下面是我试图上传的测试文件: https://github.com/tigranbs/test-heic-images/raw/master/image1.heic