【问题标题】:How to rewrite .aspx to .html or .php with htaccess如何使用 htaccess 将 .aspx 重写为 .html 或 .php
【发布时间】:2011-03-31 23:28:34
【问题描述】:

我正在尝试将一些具有 .aspx 扩展名的 URL 重写为 .html。我环顾四周,发现您可以放置​​类似

的内容
RewriteEngine On  
RewriteCond %{QUERY_STRING} ^file=(.+)$  
RewriteRule ^(.+)\.aspx$ $1.php?f=%1  

在 htaccess 中将任何 .aspx 重写为 .php。但是,当我把它放在 .htaccess 文件中时,它似乎对我不起作用。 mod_rewrite 已启用,并且该站点位于 Linux 服务器上,因此这些不是问题。如果我尝试使用 .aspx 扩展名去任何地方,我会收到“'/' 应用程序中的服务器错误”。错误。

您可以前往http://www.netstar.co.uk.php5-20.websitetestlink.com/about-us.aspx 看到这一点。对此的任何帮助将不胜感激......很长一段时间以来,它一直是我的眼中钉。

【问题讨论】:

  • 所以你希望 .html 在 url 和你的服务器上的文件是 .aspx?
  • 服务器上不会有 .aspx 文件。我们只是在 linux 环境中为我们的客户创建一个新站点,因此我们需要重写他们的旧 URL 以与 Joomla 一起使用。主要目的是进行 301 重定向,这样我们就不会破坏他们的任何 SEO。

标签: asp.net html .htaccess


【解决方案1】:

您说该站点位于 linux 服务器上并且启用了 mod_rewrite。

但是,当我导航到您提供的链接时,我得到以下 HTTP 响应标头:

Cache-Control   private
Content-Type    text/html; charset=utf-8
Server  Microsoft-IIS/7.0
X-AspNet-Version    2.0.50727
X-Powered-By    ASP.NET
Date    Thu, 31 Mar 2011 15:24:33 GMT
Content-Length  1508

这告诉我,不,它不是 Linux 服务器,不,它没有运行 Apache,不,它没有启用 mod_rewrite。

但我对此并不感到惊讶,因为您正在编写 aspx 代码,通常无论如何都不会在 linux/apache 服务器上运行。

我建议您研究 IIS 等效的 mod_rewrite。尝试从这个问题开始:mod_rewrite equivalent for IIS 7.0

【讨论】:

  • 还有错误消息“'/'应用程序中的服务器错误。”是 ASP.NET 返回的错误消息。考虑到服务器显然是 IIS,他运行的不是 Mono。 :)
  • 这很奇怪。该站点位于 Rackspace Cloud 上,应该使用他们的 linux 环境。也许这是我应该向他们提出的问题。我们很快就会切换到纯 linux 主机,所以也许这将有助于解决这个问题。感谢您指出这一点!
【解决方案2】:

我的常见错误:您需要在 httpd.conf 中启用 .htaccess 文件(或者,在例如 Ubuntu 上,在您的站点配置文件中)。在主要的<Directory> 块(或者是<Location>?)中可能有一个指令忽略根目录或所有目录中的 .htaccess 文件。

将重写规则添加到根<Directory> 可能是最简单的。更改这些文件后记得重启 apache。

【讨论】:

    猜你喜欢
    • 2011-02-13
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    相关资源
    最近更新 更多