我正在为我的学校投资组合制作一个简单的博客。如果我点击链接显示博客帖子,我的网址是 domain.com/post?post_link=First-Post 我已经阅读了有关更改此网址的SO项目,但没有任何效果我...
我希望有人能看到问题所在并提出解决方案
我有3个文件,blog.php(这里显示的是所有帖子),post.php(这是一个博文显示,基于之前页面的帖子)和.htaccess文件。
我的blog.php:
<form method="GET" action="post.php">
<input type="hidden" name="post_link" value="<?php echo $post_link;?>">
<input type="submit" name="">
</form>
我的帖子.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
除了重写网址外,一切正常,比如显示帖子并显示单个帖子
在blog.php中,我的输入类型隐藏值是正确的。
请帮助..
丹尼尔
答案 0 :(得分:0)
将您的操作更改为post
<form method="GET" action="post">
结果网址应为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]