.htaccess - Apache mod_rewrite 适用于 .htaccess 但不适用于 httpd.conf

标签 .htaccess mod-rewrite httpd.conf

我第一次尝试使用 mod_rewrite(我是网络新手,但正在努力学习)。我正在尝试获取 bob.html 重定向到 alice.html (阅读:URL 保持不变,页面内容为 alice.html )。这两个文件都在 /var/www/ .我正在运行带有 Apache 2.2.16 的 Ubuntu 10.10。

以下是 中的工作原理.htaccess 文件放在/var/www/目录:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^bob.html$ alice.html
</IfModule>

这按预期运行,但在移动到 httpd.conf 文件时不起作用(只是学习具有性能等的最佳实践)。我在某处读到在 中使用 mod_rewrite 时httpd.conf 文件,前导斜杠是必需的,所以我的 httpd.conf 文件看起来像:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^/bob.html$ /alice.html
</IfModule>

我也读过 /etc/apache2/sites-enabled/000-default 需要允许覆盖 设置为 全部 .
<Directory /var/www> 
...
AllowOverride All
...
</Directory>

我认为这仅适用于 .htaccess 但我不确定所以我只是把它留在了里面。

使用所有这些配置设置,重定向不起作用。我已经通过插入错误代码进行测试以确保文件本身被读取(有人建议 httpd.conf 不再使用,而使用 apache2.conf 代替)。我已经查看了其他几个问题/答案,但我仍然无法弄清楚。

编辑:应该注意的是,我正在使用 /etc/init.d/apache2 重启 每次更改为 后httpd.conf 重新启动 Apache 并(希望)重新加载配置。

最佳答案

尝试将重写器包装在 httpd.conf 文件中的 标签中。这似乎改变了行为,使其更类似于 .htaccess 文件。

关于.htaccess - Apache mod_rewrite 适用于 .htaccess 但不适用于 httpd.conf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5121361/

相关文章:

php - htaccess - 在子文件夹中安装 Symfony2

apache - RewriteRule Last [L] 标志不起作用?

php - 更改 Apache 配置文件后的 Symfony 路由问题

wordpress - 错误 404 帖子名称永久链接 WordPress

php - .htaccess 将 php 重写为 php 文件

html - 使用 .htaccess 重定向到 403 页面时出现 404 错误?

php - Apache http/https 非 www 到 ww url 重定向

php - 服务器签名关闭在 .htaccess 上不起作用

regex - 如何在 .htaccess 中使用正则表达式转义 "?"for mod_rewrite

apache - 出现 (13)Permission returned: make_sock: Could not bind to address [::]:9000 错误的原因是什么?