我有一个名为“blog”的子目录。我想在Web浏览器中访问此目录时清除URL。当我输入
时我想要那个www.example.com/blog/index.php?id=1
webbroswer必须显示如下:
www.example.com/blog/posts/1
当没有子目录时我成功实现了这个,但在子目录的情况下,它显示了404错误。
这是我在.htaccess文件中完成的工作,以便在我在 root 目录(而不是在子目录中)中实现它时使用它。
RewriteEngine On
RewriteRule ^posts/([^/]*)$ /index.php?id=$1 [L]
我在index.php
文件中写了我的网址
echo '<a href="www.example.com/posts/' . $row['id'] . '">' . $row['title'] . '</a>';
但问题是当我尝试在名为“blog”的子目录中实现同样的事情时,它向我显示404错误。
我在rule
中尝试了此.htaccess
。但它没有用。
RewriteCond %{REQUEST_URI} !^/blog/.*$
RewriteRule ^(.*)$ /blog/$1 [L]
我将.htaccess
文件保存在名为blog
的子目录中。
我在StackOverflow
中尝试了很多问题,但似乎没有一个能解决我的问题。
任何帮助将不胜感激。
答案 0 :(得分:2)
为您拥有的规则添加rewwrite基础:
RewriteEngine On
RewriteBase /blog/
RewriteRule ^posts/([^/]*)$ index.php?id=$1 [L]
这些将位于目录/blog/
并确保在index.php中生成如下链接:
echo '<a href="www.example.com/blog/posts/' . $row['id'] . '">' . $row['title'] . '</a>';