我的重写规则不起作用

时间:2013-12-10 15:11:10

标签: apache mod-rewrite url-rewriting

我目前希望我的网站从

重写
.com/page/1234

.com/?view=page&id=1234

继承我的.htaccess内容:

RewriteBase /
RewriteRule ^/page/([0-9]+)$ /index.php?view=page&id=$1

ErrorDocument 404 errors/404.html

当我输入“.com / page / 1”时,我的网站只会重定向到404页面。 我做错了什么?我尝试过最简单的方法:

RewriteRule ^/page$ /about.php 

但它也不起作用。所以我怀疑000webhost(我现在的主持人)不支持RewriteRule,尽管他们表示支持它。

1 个答案:

答案 0 :(得分:1)

从个人经验来看,我知道他们支持RewriteRule,但测试它们有点可怕。在“per-directory”-context中,目录的斜杠被附加到url的“prefix”部分。 .htaccess始终与“per-directory”-context一样。因此RewriteRule中以斜杠开头的.htaccess将永远不会匹配任何内容。

如果您将.htaccess更改为以下内容,则所有内容都应按预期运行:

RewriteBase /
RewriteRule ^page/([0-9]+)$ /index.php?view=page&id=$1

ErrorDocument 404 errors/404.html

我建议您为mod_rewrite阅读the documentation。它包含许多有用的信息。