【问题标题】:Rewrite URL doesn't do anything重写 URL 没有任何作用
【发布时间】:2017-12-10 15:23:49
【问题描述】:

我正在为我的学校作品集制作一个简单的博客。如果我点击一个链接来显示一篇博文,我的网址是 domain.com/post?post_link=First-Post 我已经阅读了数百篇关于更改此网址的 SO 项目,但没有任何效果我……

希望大家看看是什么问题并给出解决方案


我有 3 个文件,blog.php(这里显示了所有帖子)、post.php(这里显示了一篇博文,基于之前页面的帖子倾斜)和一个 .htaccess 文件。

我的博客.php:

<form method="GET" action="post.php">
                    <input type="hidden" name="post_link" value="<?php echo $post_link;?>">
                    <input type="submit" name="">
                </form>

我的post.php:

$post_link = $_GET["post_link"];

$sql = "SELECT * FROM blogposts WHERE post_link='$post_link'";
$result = mysqli_query($conn, $sql);
    if ($result) {
        while ($row = mysqli_fetch_array($result)) {
            $post_link = $row["post_link"];
        }
        echo $post_link;
    }

我的 .htaccess 文件:

Options FollowSymLinks
RewriteEngine On
RewriteRule ^post/([0-9a-zA-Z]+)$ post.php?post_link=$1 
RewriteRule ^post/([0-9a-zA-Z]+)/ post.php?post_link=$1 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

除了重写url,一切正常,比如显示帖子和显示单个帖子

在blog.php中,我的输入类型隐藏值是正确的。

请帮忙..

丹尼尔

【问题讨论】:

  • 你的action已经是post.php,你不需要重写它。您需要在第二条规则上添加 RewriteCond,不包括 post.php
  • 当我将 rewriterule 更改为 RewriteRule ^logi/([0-9a-zA-Z]+)$ post.php?post_link=$1 时也没有发生任何事情

标签: php apache .htaccess mod-rewrite


【解决方案1】:

将您的操作更改为 post

<form method="GET" action="post">

生成的 URL 应该是 localhost/takast/post?post_link=First-Post

此规则将匹配此,但您需要保留查询字符串[QSA]

完成.htaccess:

Options FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php [QSA]

【讨论】:

  • 我已将其复制到我的 .htaccess 中,但注意到已更改...谢谢您的帮助
  • 好的。我在您的示例中看不到完整路径。 post.php 可能不是它的开始。 post.php 的完整网址是什么?
  • post.php 的完整路径是 localhost/takast/post.php ,但是我得到错误 undefined index 因为我的 get 变量不存在
  • 一切都还是一样。只有url中的post.php变成了post
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-20
  • 2015-05-14
  • 1970-01-01
  • 2020-09-16
  • 1970-01-01
  • 2013-08-16
  • 1970-01-01
相关资源
最近更新 更多