【问题标题】:Can anyone help rewriting URL using htaccess任何人都可以帮助使用 htaccess 重写 URL
【发布时间】:2020-03-23 08:52:46
【问题描述】:

我在使用 .htaccess 重写我的 URL 时遇到了一些麻烦,这是我使用的 htaccess 代码

RewriteRule "^([ \w-]+)/?$" /future/topic?post=$1&title=$2 [L,NC,QSA]

但它不工作

http://localhost/future/topic?post=2028&recipes-from-chef-bobby-flay-comfort-food-for-discomfiting-times

以及网址的代码:

 <?php   echo ("<p><a href='topic?post=$id&" . $slug .  "'>" . $title . "</a>");   ?>

【问题讨论】:

  • 您可能需要在此处提供更多信息以获得有用的反馈。您可以仔细检查您的 URL 的代码吗?它似乎与您在 .htaccess 文件中使用的格式不匹配。您是否确认 Apache 已设置为解析 .htaccess 文件?

标签: php regex .htaccess


【解决方案1】:

您没有传递htaccess 中定义的两个参数。缺少您的标题参数。

通过这样做来纠正它

<?php   

echo "<p><a href='topic?post=$id&title=$slug'>$title</a>";
//when using double quotes a lot of things can be based directly mostly variables

 ?>

希望对你有帮助

【讨论】:

  • 不,它不起作用我在搜索localhost/future/topic/post/2028/title/…时尝试过
  • 使用 [L,QSA] 而不是 [L,NC,QSA] 调整您的 htaccess 并应用上述解决方案。并删除 "^([ \w-]+)/?$" 周围的双引号,使其看起来像 ^([ \w-]+)/?$ 。希望这次能成功
  • 它显示服务器错误,当我检查 localhost 主页时,它没有显示“未来”文件夹,当我在 .htaccess 中评论 RewriteRule 时,它​​工作正常,我的意思是使用普通 URL
  • 为什么不使用直接重定向?我的意思是如果你有 post.php 你可以将它重写为 RewriteRule ^post$ post.php 然后传递你的参数
猜你喜欢
  • 1970-01-01
  • 2010-12-23
  • 1970-01-01
  • 2015-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多