首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache重写规则

问Apache重写规则
EN

Stack Overflow用户
提问于 2009-04-16 07:17:55
回答 3查看 3.4K关注 0票数 3

我想重定向"http://localhost/b.html“--> "http://localhost/a.html”我尝试过RewriteRule。但不知何故,它对我并不起作用。

我使用的是apache2,我的httpd.conf包含:

代码语言:javascript
复制
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule rewrite_module modules/mod_rewrite.so

RewriteEngine On
RewriteRule ^/b.html$ http://localhost/a.html

当我输入"http://localhost/a.html“时,它会显示我的网页。但是当我triend "http://localhost/b.html“apache2/error_log说”文件不存在: b.html“时,是否缺少启用rewrite_module的设置?

EN

回答 3

Stack Overflow用户

发布于 2009-04-16 07:43:52

您是否检查过Apache配置文件(很可能是httpd.conf)中的别名或VirtualHost部分的指令:

代码语言:javascript
复制
AllowOverride All

我也遇到过modrewrite无法工作的问题,因为我把它关掉了:

代码语言:javascript
复制
AllowOverride None

祝好运。

票数 3
EN

Stack Overflow用户

发布于 2009-04-16 07:38:52

你在virtualhost部分中有吗?

代码语言:javascript
复制
<VirtualHost *:80>
    RewriteEngine On
    RewriteRule ^/b.html$ /a.html
</VirtualHost>
票数 1
EN

Stack Overflow用户

发布于 2009-04-16 09:58:37

它现在起作用了。我必须做两件事:

  1. 将/etc/apache2/sites-AllowOverride/default中的"AllowOverride None“更改为"AllowOverride All”。
  2. 将重写规则放在/var/www/.htaccess中,而不是放在httpd.conf

中

我不确定为什么它不能在httpd.conf中工作。但在做了上述两件事之后,它就能正常工作了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/755065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档