我有这个简单的.htaccess文件RewriteRule ^([0-9a-zA-Z:_-]+)/?$ index.php?page=$1
,所以我可以http://mywebsite.com/stuff,而且东西变成了GET variable
。我想扩展它的功能,使它像index.php?page=$2&page2=$3...
无限期一样,因为像http://mywebsite.com/stuff/is/cool这样的东西仍然有用。
另一个问题是,当我输入URL http://mywebsite.com/stuff/时,HTML似乎认为它位于stuff
文件夹中,因此它不会加载文件(css,图像等)。 ),如何解决这个问题?
谢谢
答案 0 :(得分:1)
您可以使用PHP处理网址 例如,让我们说你的脚本条目将是index.php 在这个文件只是处理这样的网址
$pages = $_GET['page'];
$extracted_p = explode ("/",$pages);
//and foreach extracted pages to decide what you want with it
第二部分,你需要设置基本url变量并放入html基本标记 在脚本的最头部
即
$base_url = "http://localhost/myscript/";
in html
<base href="<?php echo $base_url?>" />
这就是
答案 1 :(得分:1)
你的事情太复杂了。只需将其放入.htaccess
:
FallbackResource index.php
它将确保所有未指向现有文件的请求都将由根文件夹中的index.php
处理。然后在该文件中执行:
$path = explode('/', trim($_SERVER['REQUEST_URI'], '/'));
并轻松解析$path
,例如:
if(!count($path))
RenderHomepage();
elseif($path[0] == 'blog')
RenderBlog();
else
{
header('HTTP/1.1 404 Not Found');
die('This page does not exist');
}
至于你的另一个问题,从浏览器的角度来看这是合乎逻辑的 - 它没有看到你的内部结构,所以它只是根据它可以看到的URL来做文件夹逻辑。这就是您必须永远不要使用相对路径的原因,只需将您的资产指定为基于根目录的/static/mystyles.css
,并且它们将始终正常解析。