DTCMS在虚拟空间显示404 如何配置伪静态
    文章作者:恒爱网络 阅读次数:1547 发布时间:2022-5-25

    DTcms程序是ASPX开发的,可以部署到我司香港ASPX空间上实现完美兼容。我司ASPX香港专用空间的产品介绍地址是 https://www.zzhidc.com/host/hknet/index.html

    某客户程序 DTcms 安装到我司ASPX空间后,切换net4.0  首页显示正常,内页显示404 ,检查了下,貌似是伪静态问题导致的。但是查看 web.config 发现程序貌似有一套自己的伪静态设定。估计要通过注册Dll 并映射特定DLL来实现。

    通过查询得知 DTcms已经有自己的独立URL生写引擎,和IIS自带的url rewrite相冲突 。于是只能通过修改 web.config 来调用 空间自带的 url rewrite 来实现伪静态。

    如下图,在原有web.config 代码基础上 加入红色的部分 即可。代码可能不尽相同,请备份原有web.config 后谨慎调试。


    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <!-- appSettings网站信息配置-->
      <appSettings>
        <add key="Configpath" value="~/xmlconfig/site.config" />
        <add key="Urlspath" value="~/xmlconfig/urls.config" />
        <add key="Userpath" value="~/xmlconfig/user.config" />
        <add key="Orderpath" value="~/xmlconfig/order.config" />
        <add key="DbPath" value="~/App_Data/DTcmsdb.mdb" />
      </appSettings>
      <!-- 数据库连接字符串-->
      <connectionStrings>
        <add name="ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" />
      </connectionStrings>
      <system.web>
        <compilation debug="true" targetFramework="4.0" />


        <customErrors mode="Off" />
        <httpModules>
          <add type="DTcms.Web.UI.HttpModule, DTcms.Web.UI" name="HttpModule" />
        </httpModules>

        <httpHandlers>
          <add verb="*" path="templates/main/*.html" type="System.Web.HttpForbiddenHandler" />
        </httpHandlers>
        <!-- 文件上传大小KB-->
        <httpRuntime requestValidationMode="2.0" maxRequestLength="512000" executionTimeout="3600" />
      </system.web>

      <system.webServer>
     
     
    <handlers>
         <add name= "NET-To-html"  path= "*.html"  verb= "POST,GET,DEBUG,HEAD"
                modules= "IsapiModule"  scriptProcessor= "%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll"
                resourceType= "Unspecified"  preCondition= "classicMode,runtimeVersionv4.0,bitness32"  />
    </handlers>


        <validation validateIntegratedModeConfiguration="false" />
        <modules runAllManagedModulesForAllRequests="true">
          <add type="DTcms.Web.UI.HttpModule, DTcms.Web.UI" name="HttpModule" />
        </modules>
        <security>
          <requestFiltering>
            <requestLimits maxAllowedContentLength="50000000" />
          </requestFiltering>
        </security>
            <httpErrors errorMode="Detailed" />
      </system.webServer>

    </configuration>