2010-06-05 115 views
0

我有这个在我的.htaccess文件...mod_rewrite的工作不正常

RewriteEngine on 
RewriteRule ^/invite$ /invite.html 

它的意思,让用户访问这个网址:

http://mysite.com/invite 

并显示invite.html页面。我不想重定向用户,但只需从更好看的网址向他们展示invite.html页面即可。

虽然我浏览到http://mysite.com/invite,但我得到了404找不到的错误。

有什么我做错了吗?我试过看看使用mod_rewrite的教程,但我似乎也在做他们也在告诉我的东西...

谢谢!

回答

2

我不认为应该有一个/RewriteRule

RewriteEngine on 
RewriteRule ^invite$ invite.html 
+0

啊完美,现在作品:)非常感谢! – 2010-06-05 22:08:23

0

您是否确定AllowOverride All被设置为.htaccess文件所在的目录?否则该文件可能会被忽略。

如果情况并非如此,您应该查看Apache的日志文件以获取更多提示(Linux上的/var/log/apache)。

+0

我在共享主机,所以我不认为我可以查看Apache日志,我看不到我自己的帐户特定日志任何地方。 – 2010-06-05 22:03:43

+0

啊!我在cPanel中找到了我的日志,我有许多行读取:'文件不存在:/ home/myuser/public_html/invite'。这对我来说没有任何意义,从我知道'/ invite'不需要存在,因为它就是我想要做的... – 2010-06-05 22:05:26

0

您错过了RewriteCond指令。这是一个真正的测试Cond ition匹配一个URL。仅当一个或多个RewriteCond匹配时才会调用RewriteRule。

+0

我不认为这是准确的,你可以有'RewriteRule'没有'RewriteCond' – 2010-06-05 22:03:06