在Google中找到'template page',填入POST/GET
Find 'template page' in Google and fill in with POST/GET
我正在制作一个房地产网站,我希望搜索引擎能够找到我数据库中的每一栋建筑。现在,我是否必须在每次向我的数据库提交建筑物时都生成一个新的 static 页面,或者我可以 google 立即搜索我的数据库并使用 POST 或 GET 填写我的模板页面,以便建筑物以与静态页面相同的方式显示?
静态示例:http://www.real-estate.com/offices/offices-opera-house-sydney
POST 示例:http://www.real-estate.com?offices=O-123
如果有任何其他方法可以做到这一点,请告诉我好!
提前致谢!
您肯定希望 URL 遵循第一个模式的方案,这是真的。但是您不必为此生成 "static page"。至少不是通常标题为 "static page" 的文件,因此文件包含 html 或类似文件。
您的问题与静态或动态页面无关。事实上,这是机器人不知道的事情。从外面看不能是"seen"。你给出的两个 URL 可以导致完全相同的 "page",这就是诀窍。
最简单的方法是使用 "URL rewriting"。互联网上有大量这方面的例子。细节显然取决于您的设置。它们主要取决于您使用的 http 服务器。对于典型的 "apache http server",您想仔细查看 "rewriting module",它为您提供了 URL 重写的简单方法:http://httpd.apache.org/docs/current/mod/mod_rewrite.html
这背后的基本思想:你使用 "clean" 模式只给出 links,所以类似于你在问题中命名的第一个 url,没有任何查询争论。然后,当通过向您的服务器发出请求来使用此类引用时,这些请求将被重写,因此由您的服务器 在 处理它们并交付结果之前进行解释和本地更改。这样你就可以在使用方便的查询参数的同时使用干净的 URLs。
示例:
你像那样分发 URL:http://www.real-estate.com/offices/offices-opera-house-sydney
,例如将 link 发布到论坛或将其放入你的站点地图被 google 机器人扫描。
向您的服务器发出请求,因此它收到 "question" /offices/offices-opera-house-sydney
。
重写注意在内部将问题更改为 /process.php?type=offices&object=opera-house-sydney
现在调用脚本 process.php
,传递名为 type
和 object
的参数,并将输出作为响应返回给浏览器。
实际上,您的服务器页面看起来像一棵 "static pages" 树。
为此所需的重写规则的示例是:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/\/([^/]+)\/(.+)$
RewriteRule ^ /process.php?type=%1&object=%2 [L]
RewriteRule ^ /index.php [L]
如前所述,细节显然在很大程度上取决于您的具体设置。这个例子只是为了让你走上正轨。您将能够通过一些互联网研究、SO 上的现有答案和一些尝试从这里找到自己的方式。
我正在制作一个房地产网站,我希望搜索引擎能够找到我数据库中的每一栋建筑。现在,我是否必须在每次向我的数据库提交建筑物时都生成一个新的 static 页面,或者我可以 google 立即搜索我的数据库并使用 POST 或 GET 填写我的模板页面,以便建筑物以与静态页面相同的方式显示?
静态示例:http://www.real-estate.com/offices/offices-opera-house-sydney
POST 示例:http://www.real-estate.com?offices=O-123
如果有任何其他方法可以做到这一点,请告诉我好! 提前致谢!
您肯定希望 URL 遵循第一个模式的方案,这是真的。但是您不必为此生成 "static page"。至少不是通常标题为 "static page" 的文件,因此文件包含 html 或类似文件。
您的问题与静态或动态页面无关。事实上,这是机器人不知道的事情。从外面看不能是"seen"。你给出的两个 URL 可以导致完全相同的 "page",这就是诀窍。
最简单的方法是使用 "URL rewriting"。互联网上有大量这方面的例子。细节显然取决于您的设置。它们主要取决于您使用的 http 服务器。对于典型的 "apache http server",您想仔细查看 "rewriting module",它为您提供了 URL 重写的简单方法:http://httpd.apache.org/docs/current/mod/mod_rewrite.html
这背后的基本思想:你使用 "clean" 模式只给出 links,所以类似于你在问题中命名的第一个 url,没有任何查询争论。然后,当通过向您的服务器发出请求来使用此类引用时,这些请求将被重写,因此由您的服务器 在 处理它们并交付结果之前进行解释和本地更改。这样你就可以在使用方便的查询参数的同时使用干净的 URLs。
示例:
你像那样分发 URL:
http://www.real-estate.com/offices/offices-opera-house-sydney
,例如将 link 发布到论坛或将其放入你的站点地图被 google 机器人扫描。向您的服务器发出请求,因此它收到 "question"
/offices/offices-opera-house-sydney
。重写注意在内部将问题更改为
/process.php?type=offices&object=opera-house-sydney
现在调用脚本
process.php
,传递名为type
和object
的参数,并将输出作为响应返回给浏览器。
实际上,您的服务器页面看起来像一棵 "static pages" 树。
为此所需的重写规则的示例是:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/\/([^/]+)\/(.+)$
RewriteRule ^ /process.php?type=%1&object=%2 [L]
RewriteRule ^ /index.php [L]
如前所述,细节显然在很大程度上取决于您的具体设置。这个例子只是为了让你走上正轨。您将能够通过一些互联网研究、SO 上的现有答案和一些尝试从这里找到自己的方式。