【问题标题】:301 redirect html to index.php file from existing .htaccess file301 将 html 从现有的 .htaccess 文件重定向到 index.php 文件
【发布时间】:2011-03-01 03:15:33
【问题描述】:

我尝试为朋友创建一些 301 重定向。他的旧网站是一个用几个 html 页面构建的静态网站。

他得到了一个由开发人员构建的新网站,并希望我将他的旧网址重定向到他新网站上的相应页面。如果新站点没有等效页面,他希望将其重定向到首页。

旧网站只有 9 或 10 页,因此在 .htaccess 文件中为每个重定向写一行对我来说不是问题。

问题是我已经尽一切可能使用他的新网站的开发人员创建的 .htaccess 文件进行重定向,但没有成功。

当前的 .htaccess 文件包含以下几行

RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ /~example.com/index.php/$1

我已经尝试了在这个网站和谷歌上找到的各种东西。例如,如果我能让它工作,我会很高兴

RedirectMatch 301 (.*)\.html$ $ /~example.com/index.php/$1

我尝试将该行放在现有 RewriteCond 上方但在现有 RewriteEngine 行下方,并尝试将其放在所有现有行下方的底部,但没有成功。我发现的每个例子都不起作用。无论我做什么,我都会不断收到 404 页面。

我是一个前端人员,不了解 Apache,也对 Drupal 和 wordpress 之外的框架了解不多,但看起来这个站点是使用 zend 框架构建的自定义 CMS。该网站有一个用于创建新页面的管理界面,但选项很少,而且绝对没有创建重定向的选项。有什么想法吗?

哦,还有一件事。我知道我在 web 目录中,因为如果我删除 index.php 文件,基本 url 会返回 404。

【问题讨论】:

    标签: apache .htaccess redirect


    【解决方案1】:
    RewriteEngine on
    RedirectMatch 301 /(.*?)\.html$ /~example.com/index.php/$1
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule ^(.*)$ /~example.com/index.php/$1
    

    【讨论】:

    • 不,尝试访问 html 文档时找不到 404。谢谢你的尝试。还有什么可能导致这种情况。我已确认 mod_rewrite 模块已启用
    猜你喜欢
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-27
    相关资源
    最近更新 更多