URL重写 - 找不到页面错误

时间:2009-04-30 12:14:19

标签: php url mod-rewrite url-rewriting

为了将我的动态网址(即www.3idiots.co.in/index.php)转换为静态网址即www.3idiots.co.in/index.html,我编辑了我的.htccess文件并将以下代码放入它:

RewriteEngine On
RewriteRule ^index.php$ /index.html [R]

当我在根目录中上传此文件并尝试打开该页面时,我收到了错误

  

未找到404页错误,未找到www.3idiots.co.in/index.html。

7 个答案:

答案 0 :(得分:1)

你必须有一个名为index.html的文件。现在你没有。重写/重定向工作正常,您只是重定向到不存在的页面/文件。

我对你真正要做的事情感到有点困惑。如果您只想将index.php移动到index.html,请重命名该文件。重写使得如果有人试图打开index.php,它们将被重定向到index.html,但你仍然必须有一个index.html文件,以便将它们重定向到

答案 1 :(得分:0)

RewriteEngine On

# Send the user to index.html
RewriteRule ^index.php$ /index.html [R]

# Tell the server that index.html really means index.php
RewriteRule ^index.html$ /index.php

答案 2 :(得分:0)

请尝试以下规则:

RewriteCond %{THE_REQUEST} ^GET\ /index\.php
RewriteRule ^index\.php$ /index.html [L,R=301]

RewriteRule ^index\.html$ index.php [L]

第一条规则将/index.php的每个直接请求重定向到/index.html。第二条规则将/index.html内部请求重写为/index.php

答案 3 :(得分:0)

你确定mod重写已启用&工作

1)创建一个名为found.html的html页面,其中包含你想要的任何内容,但有些文本确定它已加载(基本上不是空白页面)并将其放在名为“.htaccess”的文件中:

重写发动机 RewriteBase /
RewriteRule ^ find.html $ /found.html [L]

2)将.htaccess和found.html文件上传到您网域的根目录

3)只需尝试加载-www.example.com/find.html(当然还有您的真实域名)。如果mod_rewrite可用,你应该在浏览find.html时看到found.html的内容(顺便说一下,它实际上并不存在)。

如果不起作用,请尝试:

重写发动机 RewriteBase /
RewriteRule ^ find.html $ found.html [L]

答案 4 :(得分:0)

在Apache Conf文件中,您还需要确保将AllowOverride设置为允许处理.htaccess的值。

通常是AllowOverride all

答案 5 :(得分:0)

RewriteEngine On

RewriteRule ^ index.html $ index.php

RewriteRule ^ $ index.htm / $ index.php [L]

答案 6 :(得分:0)

选项+ FollowSymLinks
重写引擎 RewriteRule ^ index.html $ index.php

试试这段代码......

它适用于您的问题/.../ p>

Best Of LUck
如果它解决了你的问题..
访问我的网站