0

我认为我的问题可能措辞不正确,但这是我想要做的(出于 SEO 目的)。

我有一个页面,其中给出了一个品牌的标志和描述,例如沃尔沃。我想将同一页面用作所有制造商的模板,但只需更改几个字以相应地为每个制造商定制它。因此,在 URL 中,我将制造商的变量传递给它,例如“www.example.com/cars.cfm?manufacturer=BMW”,它将显示一个提供有关 BMW 信息的页面。

问题是对于每个制造商,信息仍然在地址栏中显示为同一页面“cars.cfm”,但我真的希望它转到“www.example.com/manufacturers/volvo.cfm”之类的 URL因此它显示为该品牌的唯一页面。但与此同时,我不想为每个制造商创建单独的 CFM(或 php/asp)页面。

有没有聪明的方法来做到这一点?我想这与 URL 重写有关,但不确定。我正在使用 IIS 7.5。


为不同的汽车制造商创建大量子文件夹将非常乏味。我的网站还将包括其他类型的制造商,用于不同的产品,而不仅仅是汽车。我想 URL 重写是最好的,但我的想法是为每个制造商提供不同的“页面”,以便改进 SEO。

基本上....

www.example.com/manufacturers/audi.cfm 
www.example.com/manufacturers/bmw.cfm 
www.example.com/manufactueres/volkswagen.cfm

但我真的希望每个页面上的数据都来自一个数据库,该数据库包含每个制造商的唯一数据,例如徽标图像和历史描述。

这是我的意思的一个例子:

http://www.fivestarautocentre.co.uk <-- go to bottom of that page and you can see links to various manufacturers
4

2 回答 2

3

建立在其他人所说的基础上,首先创建您的www.example.com/cars.cfm?manufacturer=BMW页面并使其正常工作。

假设您在 IIS 上,您将web.config在根文件夹中创建一个文件(如果它不存在)。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>

    <rewrite>
        <rules>
            <rule name="Cars-Rewrite">
                <match url="manufacturer/(\w+)" />
                <action type="Rewrite" url="/cars.cfm?manufacturer={R:1}" />
            </rule>
        </rules>
    </rewrite>

</system.webServer>

我的正则表达式可能已关闭,但也许其他人可以插入正确的正则表达式。

于 2012-10-25T12:56:55.397 回答
0

您当然可以按照其他人的建议通过 URL 重写来处理这个问题,但我认为我会采取不同的方法。特别是出于 SEO 目的。SEO 的最佳解决方案将是每个品牌的实际 URL。考虑到这一点,相应地创建您的网站。不要使用通用的 www.example.com/cars.cfm 页面,使用 www.example.com/bmw、www.example.com/volvo 等。您仍然可以在每个文件夹下都有一个 ColdFusion 页面无非包括来自其他位置的通用 ColdFusion 模板(或调用 cfc)。由于每个文件夹都有自己独特的存根文件,因此您可以在调用通用 ColdFusion 模板时传递相应的车辆制造商。例如,在 www.example.com/bmw 页面下:

<cfset manufacturer = "bmw" />
<cfinclude template="/mytemplates/genericpage.cfm" />

然后您的 genericpage.cfm 使用分配的变量来显示适当的文本和图形。您甚至可以通过解析 URL 并在包含和执行模板时从中获取制造商来绕过必须在每个文件夹下设置特定变量。我相信该cgi.script_name变量将包含执行此操作所需的路径。

于 2012-10-25T12:50:16.890 回答