【问题标题】:SEO link for dynamic database data动态数据库数据的 SEO 链接
【发布时间】:2020-07-17 09:26:48
【问题描述】:

我对 SEO 链接有疑问。问题是我想打开一个干净的 SEO 链接以访问我数据库中的任何文章,同时以这种格式命名它:

website.com/category/id/title

问题是,有问题的数据也是从数据库中获取的,所以它都是动态的。

这是“a”标签,它通过名称文章将我发送到我的网页。

<p class="readmore">
 <a href="article?category=<?php echo $ArtCat; ?>&artid=<?php echo $ArtID; ?>&title=<?php echo $dashedTitle; ?>">Read More</a>
</p>

我希望它是这样的,但是当我将其更改为那样时,它不会按预期移动到下一页,因为未定义变量。

<a href="article/<?php echo $ArtCat; ?>/<?php echo $ArtID; ?>/<?php echo $dashedTitle; ?>">Read More</a>

这是article.php上的内容

<?php
    echo "Article Category: " . $_GET['category'];
    echo "<br>";
    echo "Article ID: " . $_GET['artid'];
    echo "<br>";
    echo "Article Title: " . $_GET['title'];
    echo "<br>";
?>

我的 .htaccess


RewriteRule ^article/([0-9a-zA-Z_-]+)/([0-9]+)/([0-9a-zA-Z_-]+)$ article.php?category=$1&artid=$2&title=$3

【问题讨论】:

  • 小提示:如果您的服务器配置正确,&lt;?php echo $variable;?&gt; 的快捷方式是&lt;?=$variable?&gt;

标签: php dynamic-url


【解决方案1】:

你需要在你的 .htaccess 中启动 RewriteEngine,否则 RewriteRule 将不起作用。

RewriteEngine on

此代码需要位于您的 RewriteRule 之前。

【讨论】:

  • 哦,开始了。上面的代码中我没有包含它!
  • @JohnMercel 如果我测试你的代码,其余的对我有用。您需要注意,正确设置变量,就像其他答案一样,并且不要覆盖您的 htaccess 规则。这可能以 500 结尾。
【解决方案2】:

如果我在中没有误会你的话,“它不会按预期进入下一页,因为没有定义变量。”,变量$ArtCat$ArtID 和@ 987654323@ 未定义于:

<a href="article/<?php echo $ArtCat; ?>/<?php echo $ArtID; ?>/<?php echo $dashedTitle; ?>">Read More</a>

您正在尝试访问包含&lt;a&gt; 代码的index.php 以将用户重定向到article.php,对吗?变量必须在index.php 中定义或包含在其中。也许你有一些代码在index.php:

<?php
// include some files
// query some database
// some code
?>
<a href="article/<?php echo $ArtCat; ?>/<?php echo $ArtID; ?>/<?php echo $dashedTitle; ?>">Read More</a>

未定义的变量意味着您没有 $ArtCat = "article-category-name" 并且您在 &lt;a href&gt; 中请求的其他变量都没有

如果代码中包含这样的署名“=”:

  1. 检查拼写错误;
  2. 如果发生在// include some files(代码属于另一个文件但被包含),请确保包含被很好地包含;尝试require,确保记录/回显变量;
  3. 如果发生在// query some database,请尝试一些日志(或var_dumps)以检查数据库结果是否为空值;

如果归因发生// some code,请检查变量是否未在函数内部定义。

<?php
function something ()
{
    $ArtCat = "article-category-name";
    ...
}
something();
echo $ArtCat; // Here $ArtCat it's not defined
 
function somethingElse ()
{
    $ArtCat = "article-category-name";
    ... // the other vars
    return [ $ArtCat, /* the other vars */ ];
}
somethingElse();
echo $ArtCat; // Here $ArtCat it's not defined

如果 vars 的值来自 $_REQUEST,请确保它们不会为 null。 如果 vars 的值来自环境 vars,请尝试 echo before 并检查 php 是否在它们定义的相同范围内运行。

也许一些更多的细节可以帮助我帮助你。

【讨论】:

    猜你喜欢
    • 2023-04-10
    • 2020-03-09
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 2014-03-03
    • 1970-01-01
    相关资源
    最近更新 更多