Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php .htaccess配置多个参数和文件重定向_Php_.htaccess - Fatal编程技术网

Php .htaccess配置多个参数和文件重定向

Php .htaccess配置多个参数和文件重定向,php,.htaccess,Php,.htaccess,我有一个简单的.htaccess文件RewriteRule^([0-9a-zA-Z:-]+)/?$index.php?page=$1,这样我就可以把东西变成GET变量。我想无限期地扩展它的功能,使它像index.php?page=$2&page2=$3…,这样的东西仍然可以工作 另一个问题是,当我输入URL时,HTML似乎认为它位于stuff文件夹中,因此它不会加载文件(css、图像等),如何解决这个问题 谢谢您可以使用PHP处理url 例如,让我们假设您的脚本条目为index.php 在这个文

我有一个简单的.htaccess文件
RewriteRule^([0-9a-zA-Z:-]+)/?$index.php?page=$1
,这样我就可以把东西变成
GET变量。我想无限期地扩展它的功能,使它像
index.php?page=$2&page2=$3…
,这样的东西仍然可以工作

另一个问题是,当我输入URL时,HTML似乎认为它位于
stuff
文件夹中,因此它不会加载文件(css、图像等),如何解决这个问题


谢谢

您可以使用PHP处理url 例如,让我们假设您的脚本条目为index.php 在这个文件中,只需像这样处理url

$pages = $_GET['page'];
$extracted_p = explode ("/",$pages);
//and foreach extracted pages to decide what you want with it
第二部分,您需要设置基本url变量并将其放入html基本标记中 在脚本的最大页眉处

i、 e

在html中

<base href="<?php echo $base_url?>" />

你把事情复杂化了。只需将其放入您的
.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
中,它们总是可以很好地解决问题。

似乎是一个很棒的解决方案,但是如果页面末尾没有index.php文件,
FallbackResource index.php
似乎无法工作,我不想那样。当我把它放进一个像这样的网络文件夹时,它就不起作用了。它的工作方式如下:或此:。如何让它像这样工作?就是这样。如果没有,您的
.htaccess
中还有其他垃圾阻碍了它。这应该是这里唯一的一行奇怪的。。。这是.htaccess文件中的唯一一行。在这里,它只在末尾使用index.php指示。我尝试了
FallbackResource index.php
FallbackResource/index.php
,就像在示例中一样,这两种方法在没有index.php指示的子文件夹中都不能正常工作。
FallbackResource/potates/index.php
几乎可以工作。如果我这样做,它会工作:,但不会只与。它返回一个javascript控制台错误:
加载资源失败http://mysite.com/potato/
(虽然页面仍然显示,但javascript无法工作)我认为问题在于URL结尾的/处,但不知道如何解决它
if(!count($path))
  RenderHomepage();
elseif($path[0] == 'blog')
  RenderBlog();
else
{
  header('HTTP/1.1 404 Not Found');
  die('This page does not exist');
}