2

我目前运行一个包含 750 页 .html 网页的网站(是的,我知道这是一个愚蠢的想法,但我是新手)。我希望将这些移至 php。我真的不想设置 750 个单独的 301 重定向并将每个页面重写为 .php

我听说我可以使用 htaccess 来解决这个问题。有谁知道怎么做?

还有几个问题——

  1. 我可以将这些链接从 html 永久重定向到 php,而不会丢失我的搜索引擎排名吗?
  2. 如果我想将 php 添加到每个文件(即 php 文件菜单(使用 include 命令)以使链接更快更新,这会起作用吗?因为它们不会仍然是 html 文件吗?

对不起,愚蠢的问题,但我还在学习。

4

5 回答 5

1

恭喜您拥有 750 页的网站 - 您一定为此付出了一些努力。

要收集您当前的页面列表,请使用名为 xenu 的工具创建导出到 excel 中。然后,您可以轻松地将 b 列中的文件名称更改为 PHP 并创建一个 .htaccees 文件。

但是为什么你想要 750 个 php 文件呢?如果您有很多数据页,请将其设为一页并吸收 HTML 主要内容并引用一页。如果您有一个名为 warehouse-depot-22-row-44.html 的页面,则将其更改为 show-warehouse-row.php?depot=22&row=44 并仅返回该内容。这将显着减少您的页面数量并开始使用数据库来呈现内容。

于 2012-10-13T12:18:13.843 回答
0

我有一个类似(但小得多)的网站,它经历了同样的事情。

我的 .htaccess 中有这个:

RewriteEngine On
RewriteRule ^(.*)\.html$ $1.php [L]

这将有助于将任何访问您的 .html 地址的访问者重定向到您的 .php 地址。

希望您有一个 IDE(我推荐 Aptana),并且您可以在项目范围内使用一些查找/更改功能,并希望通过一些时间和耐心获得从 .html 到 .php 的内部链接。

但是,我要提醒您一点——也许是时候研究基于数据库的 CMS,例如 Wordpress 或 Drupal?

于 2012-10-13T21:31:02.570 回答
0

对于重定向,您可以使用 Apache 模块 mod_rewrite:https ://httpd.apache.org/docs/current/mod/mod_rewrite.html

于 2012-10-13T11:26:29.173 回答
0

您可以使用 url 重写将特定文件名请求与正则表达式匹配,然后决定在匹配时重定向到哪里

RewriteRule ^myname/?$  myname.php    [NC,L]

http://www.addedbytes.com/articles/for-beginners/url-rewriting-for-beginners/

于 2012-10-13T11:27:38.283 回答
0

取决于你的结构。您希望用户在其自然位置访问它们吗?

/public_html/folder1/file.php
user would access like
mydomain.com/folder1/file

或者你想以不同的方式映射它们?

我个人认为我会使用重写规则将所有请求映射到我的 /public_html/index.php 并使用 php 映射来自那里的请求(例如使用 include)。这提供了极大的灵活性,而且您的应用程序只有一个入口点,这非常有益,因为您可以轻松地保持对应用程序流程的控制。

.htaccess 看起来像这样

#
# Redirect all to index.php
#
RewriteEngine On

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# RewriteCond %{REQUEST_URI} !^/index\.php
# RewriteCond %{REQUEST_URI} (/[^.]*|\.(php|html?))$ [NC]
RewriteCond %{REQUEST_URI} (/[^.]*|\.)$ [NC]
RewriteRule .* index.php [L]

当然,我将所有不可直接访问的文件(除索引和 css、js、图像等之外的所有文件)都放在 public_html 之外的文件夹中,以确保没有用户可以直接访问它们;)

于 2012-10-13T11:39:10.537 回答