FollowSymlinks .htaccess重写规则404错误

时间:2013-03-21 20:15:18

标签: .htaccess mod-rewrite http-status-code-404

我的真实网址是:

www.mysite.com/site/index.php

我需要:

www.mysite.com/home.html

我在.htaccess中写道:

  Options +FollowSymlinks
  RewriteEngine On
  RewriteRule (.*)/home.html$ /site/index.php

但请转到404错误

任何帮助?

Tk的。

更新:

该域实际上是否有任何影响:www.my-site.com ??

更新:

我保存在www.my-site.com并为此进行更改:

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On
  RewriteBase /
  RewriteRule ^home\.html$ site/index.php
</IfModule>

但没有工作。

4 个答案:

答案 0 :(得分:1)

RewriteRule指令的模式部分匹配请求的路径(例如/ my / request /),主机和查询字符串不包括在内。另请注意,在 .htaccess 上下文中,前导斜杠不包含在模式中。

  Options +FollowSymlinks
  RewriteEngine On
  RewriteBase /
  RewriteRule ^home\.html$ site/index.php

答案 1 :(得分:1)

在我的服务器中,我更改了Apache中的httpd.conf

AllowOverride NoneAllowOverride All

工作吧!

答案 2 :(得分:0)

你在评论中说:

  

文件.htaccess保存在www.mysite.com/site/

这意味着,使用当前模式,您可以访问www.mysite.com/site/anything/home.html,这将被重写为www.mysite.com/site/site/index.php

您应该将.htaccess放在文档根目录中,并按照建议的方式从模式中删除此部分:(.*)/

答案 3 :(得分:0)

此站点由godaddy.com托管,服务器在Windows上通过IIS运行,因此,规则必须写入web.config文件。

<configuration>
 <system.webServer>
   <rewrite>
  <rules>
    <rule name="Imported Rule 1">
      <match url="^home\.html$" ignoreCase="false" />
      <action type="Rewrite" url="site/index.php" />
    </rule>
  </rules>
</rewrite>
 </system.webServer>
</configuration>

难以置信!!