搜索引擎友好的URL

3

我正在构建我的第一个搜索引擎友好型CMS。我知道拥有搜索引擎友好的URL可能是拥有SEO网站最重要的关键之一。因此,像这样的链接:

http://www.mysite.com/product/details/page1

与下面这样的网站相比,一个有优化的URL结构将会得到更好的排名:

http://www.mysite.com/index.php?pageID=37

我知道要创建像第一个URL那样的URL,我有两个选项:
  • 使用Web技术,这种情况下是PHP,来创建目录结构
  • 利用Apache的mod_rewrite插件将这些URL传递给PHP处理器
就PHP而言,我对任何内容都非常熟悉。然而,我认为第一种选项更难维护。
请问有人可以向我展示如何编写.htaccess文件,以便:
  • 将SEO URL 静默重定向到一个处理器脚本
  • 如果所请求的URL实际上是服务器上的实际目录,则不进行重定向
除了我正在尝试的方法,是否还有更好的方法呢?

1
这是一个关于mod_rewrite的好教程:教程 - Nikola K.
2个回答

7
您可以使用Apache的.htaccess文件,在Web根目录(主要是“htdocs”)中创建一个名为“.htaccess”的文件,并添加以下内容:
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
    Options -Indexes
</IfModule>

在您的PHP文件中,您可以从$_GET访问数据。
$_GET['url'];

然后你可以使用数据来解析你需要的内容。

好的,我真的需要学习Apache。感谢示例Senad!!!如果您有额外的时间,能否告诉我每个部分的作用? - Oliver Spryn
1
如果模块检查在服务器上存在mod_rewrite.c RewriteEngine On打开它。 RewriteCondition是条件,用于重写 Reqrite规则是对重写数据要执行的操作(获取.com后面的所有内容并将其放入服务器变量中并执行index.php,是的,现在您只需要理解这些) - Senad Meškin
Drupal有非常相似的重写功能。 - AKS

0

是的,第一种选项会很难维护。如果您想更改页面的标题,您需要重新计算所有页面。

最简单的方法是创建一个名为product.phpproduct/details.php的PHP文件,并使用$_SERVER\['PATH_INFO'\]变量来确定客户端请求的内容。


谢谢,但这种方法的唯一问题是这些虚假目录结构将会动态创建,并且可能会完全改变。我同意让PHP尝试维护这些结构会很头疼。 - Oliver Spryn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接