.htaccess重定向子目录作为php中的查询字符串

| 这很难解释,所以希望我对我的问题有所了解。 (1)我想创建\“ SEO friendly \”链接以从网站中删除查询字符串。只有一个变量,我们将其称为\“ page \”。这是我的
.htaccess
文件的以下代码。
Options +FollowSymLinks

RewriteEngine On
RewriteRule ^(.*)$ index.php?page=$1
这可以提供正确的重定向。因此,
/applications/
将发送到
index.php?page=applications
。 (2)我的index.php将包含一个基于
$_GET[\'page\']
值的视图页面。以下是一些示例代码:
switch ($_REQUEST[\'page\']) {

    default:
    include (\"home.php\");
    break;

    case \"apps\":
    include (\"apps.php\");
    break;  

}
到目前为止似乎还没有问题。 (3)让我们将
apps.php
精确地复制为
home.php
。 home.php可以很好地加载,但是
apps.php
不会加载链接的CSS和JScript页面。装入
apps.php
时,会认为它位于
/apps/
目录中。要加载链接的页面,我需要在文件名之前插入\“ ../ \”。然后它正确显示。 所以我的问题是-如何正确地编写
.htaccess
文件,以便
home.php
apps.php
页可以是相同的文件并产生相同的结果,而不是将
apps.php
文件视为在
/apps/
目录中一样?     
已邀请:
        首先,我应该道歉,因为我没有涉及更改htaccess的解决方案。我的解决方案具有不同的性质。 我认为,如果您有一个config变量(最好是在一个配置文件中)可以解决问题,该文件将保存图像,js等的根文件夹。大多数情况下,它的public_html,文档根目录,网站的网址指向至。因此您的配置变量可能如下所示:
$base_url = \'http://www.mywebsite.com/\';
配置文件应无条件地包含在index.php中。 因此,当您包含任何js或图像时,您将像这样进行操作:
<script type=\"text/javascript\" src=\"<?php echo $base_url;?>js/global.js\" />

<img src=\"<?php echo $base_url;?>images/gradient_green.jpg\" />
如果将配置文件包含在index.php中,则根据切换情况,所包含的所有文件都将能够使用$ base_url变量。 另一种可能的解决方案是使用基本标签。在这里查找: http://www.w3schools.com/TAGS/tag_base.asp 我希望这有帮助。     
        对网页上的js,css和图片使用绝对网址(以斜杠开头)。 /js/main.js而不是js / main.js     
        除非进行外部重定向(通过将[R]标志添加到RewriteRule中),否则无法使用.htaccess进行操作。但是,然后您公开查询字符串,这是您首先要避免的字符串。 无法完成的原因:不是“ apps.php”“认为它在/ apps /目录”中,而是“浏览器”在“ apps /”目录中。在apps.php生成的页面源中,您将相对URL发送回浏览器,现在浏览器将请求相对于其所请求页面位置的这些资源。对于浏览器,无论您在服务器端内部进行了何种重写,它都在/ apps /目录中。 因此,您有以下选择: 使用.htaccess进行外部重定向(并破坏您的初衷;-) 如您所说,在处理apps.php等的同时,用PHP动态更改URL(在URL前面加../) 使用绝对URL,就像@nobody在他的答案中建议的那样。 最后一个是唯一的真实选择恕我直言。     

要回复问题请先登录注册