我有一个网站,可以让人们在线获取手册。我有一个新版本的手册,其中所有内容都是使用 php 和 mysql 动态生成的。所以没有更多的 html 生成。

我现在有法文和英文的手册。我了解到,出于搜索引擎的目的,如果我有与 gogole 和 yahoo 等友好的 url 会很好...

现在这是我的问题:

我想像这样显示网址:

  • /manual/将转到用户选择语言的主手册页
  • /manual/fr/这将显示所有可用章节的列表
  • /manual/fr/1.0 这将显示第 1 章

  • 我知道我需要在哪里使用类似的东西:
    rewriterule /manual/(.*)/(.*)/(.*)/ index.php?lang=$1& ...
    

    我可以使用 1 条规则来做到这一点吗?还是我需要倍数?

    非常感谢

    最佳答案

    这是你必须做的:

    RewriteEngine On
    RewriteRule ^manual/?$ index.php?action=selectLang [L,NC,QSA]
    RewriteRule ^manual/(fr|en)/?$ index.php?action=listChapter&lang=$1 [L,NC,QSA]
    RewriteRule ^manual/(fr|en)/([0-9\.]+)(/[^/]+)?/?$ index.php?action=listChapter&lang=$1&chapter=$2 [L,NC,QSA]
    

    第一个将加载用户选择语言的页面。在您的 PHP 中,您可以检查 $_GET['action'] 以便您可以加载“选择语言”页面。第二个与第一个相同的想法,但针对章节列表。现在是第三个,您可以使用 /manual/fr/1.0/manual/fr/1.0/chapter-title 。如果添加标题,这将对SEO更好。

    每个 [] 末尾的 RewriteRule 是标志,在这里了解更多信息:http://httpd.apache.org/docs/2.3/rewrite/flags.html

    10-08 16:27