htaccess或php重定向到此任务?

htaccess或php重定向到此任务?,php,.htaccess,redirect,mod-rewrite,Php,.htaccess,Redirect,Mod Rewrite,我需要有经验的人的帮助:) 我注意到,很多网站的搜索引擎优化友好的网址,如www.site.com/123456/some-title,只取值123456,其余的都不重要,htaccess只需将变量123456发送到特定的网址,然后访问者就可以看到内容 所以,如果我打字 www.site.com/123456/some-title-1 www.site.com/123456/some-title-2 www.site.com/123456/some-title-3 www.site.com/12

我需要有经验的人的帮助:)

我注意到,很多网站的搜索引擎优化友好的网址,如www.site.com/123456/some-title,只取值123456,其余的都不重要,htaccess只需将变量123456发送到特定的网址,然后访问者就可以看到内容

所以,如果我打字

  • www.site.com/123456/some-title-1
  • www.site.com/123456/some-title-2
  • www.site.com/123456/some-title-3
  • www.site.com/123456/some-title-4
  • 我将始终看到相同的页面,因为传递的id始终是相同的123456

    但我看到一些网站纠正了这一点。例如:

    -如果我键入上述4个url中的任何一个,它们会显示内容,但会首先将我重定向到正确的url(www.site.com/123456/some title)

    我该怎么做?我认为这是一个php问题,因为他们需要连接到数据库来检查id 123456的原始“url路径”,对吗

    如果有人能给我小费,那就太好了! 谢谢

    我该怎么做?我认为这是一个php问题,因为他们需要连接到数据库来检查id 123456的原始“url路径”,对吗

    这是一个PHP问题。这里需要发生两件事。当有人要求:

    www.site.com/123456/some-title-1
    
    htaccess中存在路由,类似于(示例规则):


    因此,无论脚本是什么(some.php),它都会得到两个参数,一个ID和一个slug。ID是它用来查找数据库或存储实际内容的位置的ID。当它从数据库中获取信息时,它可以比较slug。如果它们不同,则不提供内容,而是重定向浏览器以显示正确的slug。然后我们从头开始,浏览器提交请求(这次使用正确的slug作为ID),重写规则将其路由到
    some.php
    ,因为slug是正确的,实际内容将被发送到浏览器。

    请向我们提供您的.htaccess aproach。请检查这可能对您有帮助。.这里的神奇词语是“路由”。在Cake、RubyonRails或Django等框架中经常可以看到这一点。
    RewriteRule ^([0-9]+)/(.*)$ /some.php?id=$1&slug=$2 [L]