0

我正在使用 mod_rewrite 来获取 SEO 友好的 URL

RewriteEngine on
RewriteBase /
RewriteRule ^([^/\.]+)/?$ /page.php?page=$1 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /page.php?page=$1&sub=$2 [L]

所以我可以加载http://foo.com/food/local。效果很好,但它会加载整个页面,并且客户端希望添加一个跨页面加载持续存在的流媒体播放器。

所以我试图切换到使用 jQuery.load() 加载所有内容

<script>
   $(".ajax").click( function(e) { 
        e.preventDefault();
        $('#contentMain').load( $(this).attr("href"), function() {console.log( "Load was performed." ); });
    });         
</script>

我可以让它将我的整个页面加载到#contentMain,但我对如何在加载仅交换内容的剥离版本的 PHP 时如何维护 SEO URL 感到困惑。

例如,来到http://foo.com/food/local会加载整个页面,但单击http://foo.com/food/local中带有 href /food/foreign 的链接不会按 mod_rewrite 命中 page.php,而只是使用相同的参数轮询 content.php?我应该重建 page.php 以某种方式识别上下文吗?

此外,当使用此方法时,您是否会通过 AJAX 更新元描述和标题?或者,只要http://foo.com/food/local可以被抓取并具有正确的元信息,这无关紧要吗?

4

1 回答 1

2

如果是 ajax 调用,为什么不直接访问非朋友 page.php 链接?它应该仍然可以访问。您可以使用页面链接向您的 href 添加数据属性:

<a href="/food/local/" data-ajax="page.php?page=$1">Local Food</a>

无论如何,只是一个想法。

于 2013-10-24T20:29:43.567 回答