asp-classic - 经典的 ASP URL 重写

标签 asp-classic url-rewriting

我想知道当您无法访问 IIS 以进行任何重写更改时,是否可以使用经典 ASP 进行 URL 重写?

我们有一个在线商店,其中产品通常链接为/product.asp?ContentID=X 但希望有一些对 SEO 更友好的东西,例如/product/unique-product-name

不幸的是,我们在一个共享的托管平台上,目前的托管服务提供商不愿意在他们的服务器上安装额外的组件,以防它们给其他人带来问题。 :(

最佳答案

稍后回答,但可能对您或其他人有帮助。

我有时仍然使用经典的 ASP 进行编码,并且由于共享主机等问题,我也在 URL 重写方面苦苦挣扎了一段时间。

当我确实可以访问 IIS 设置时,无论是通过我自己手动还是通过询问服务器支持团队,我都使用了 404 错误方法。虽然这有效,但效果并不好。它比“正常”方式稍慢,而且它疯狂地阻塞了我的错误报告。

自从 IIS7 出来后,我找到了一个提供使用 IIS7 URL 重写模块的托管服务提供商(对我来说是 GoDaddy),我现在要做的就是将 web.config 文件上传到我的根目录应用程序和 URL 重写完美无缺。

所以我的建议是,如果可以的话,将您的应用程序移至提供此服务的托管服务提供商。如果当您确实更改主机时,您只需要一个 web.config 文件(如下),将其上传到根目录即可。您根本不需要联系房东。

将其保存为 web.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Rewrite to friendly URL">
                      <match url="^blog/([0-9]+)/([_0-9a-z-]+)" />
                      <action type="Rewrite" url="blog/article.asp?id={R:1}&amp;title={R:2}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

如果有人进入:

http://mydomain.com/blog/1/the-article-title

...它将被重写为:

http://mydomain.com/blog/article.asp?id=1&title=the-article-title

享受

关于asp-classic - 经典的 ASP URL 重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1624349/

相关文章:

sql-server - MS SQL 查询这安全吗?

api - 通过msxml2.ServerXMLHTTP提供身份验证信息

asp-classic - 检查 VBScript 中是否存在对象

python - 如何从 Python 中的 url 中删除方案?

asp.net - 没有可用扩展名时的 URL 重定向

Session.Timeout 在 ASP Classic/IIS 中无法正常工作

visual-studio - 经典的 ASP super 新手问题

apache - Htaccess 从一个子文件夹重定向到另一个子文件夹

tomcat - 每个页面的多个有状态 iframe 将覆盖 JSESSIONID?

java - 反向代理 : Accessing . 来自 Java Web 应用程序的网络 Web 应用程序