【问题标题】:htaccess and css fileshtaccess 和 css 文件
【发布时间】:2012-10-31 07:24:52
【问题描述】:

我有这个项目:

在索引中,我使用以下代码检查 url:

if( isset( $_GET['url'] ) ) {
   if( file_exists( 'classes/layout/'.$_GET['url'].'.php' ) ) {
    require_once 'classes/layout/'.$_GET['url'].'.php';
   } 
}

在我的 .htacces 中:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]
RewriteRule ^(.*?)$ index.php?url=$1&%{QUERY_STRING} [L]

这很好用。何时转到示例:127.0.0.1/test/pages/edit 索引包括 edit.php 但在索引中我使用了一个名为 test.css 的 css 文件,它使整个 html 背景变为红色。

如果我去 127.0.0.1/test/ 我看到整个背景都是红色的。但是当我去 127.0.0.1/test/pages/edit 它是白色的。我检查了 css 文件的 url,我得到了这个:

127.0.0.1/test/ = 127.0.0.1/test/cache/css/test.css

127.0.0.1/test/pages/edit = 127.0.0.1/test/pages/cache/css/test.css

有人知道如何解决这个问题吗?

【问题讨论】:

  • 也许这会有所帮助:stackoverflow.com/questions/13305963/…
  • 快速旁注:您发布的代码示例会产生潜在的安全问题(路径遍历)。你永远不应该相信用户输入!
  • 向我们展示这一行,您是如何将 test.css 包含在您的条目脚本中的。
  • 详细说明 Martijn 的观点:如果您将该代码放在公开可用的 Web 服务器上,您将向全世界开放该服务器。您应该将 URL 参数的值与一组预定义的值进行比较,并根据该值加载正确的文件。为此,参数应该具有不同的名称,例如 pageId 或其他名称。然后执行:if($_GET['pageId'] == 'page1') { require_once('path/to/file'); }.

标签: php html css .htaccess xampp


【解决方案1】:

您需要使 css 链接成为绝对链接(以 /test/ 开头)或通过将其添加到页面标题来为所有相对链接添加基础:

<base href="/test/">

(基础 URI 可能需要调整,但看起来您希望它是 /test/

发生这种情况的原因是浏览器会根据加载的 URL 猜测 URI-base 是什么。当您在浏览器中输入http://127.0.0.1/test/ 时,浏览器会假定URI 基数是/test/,并且所有相关链接都会将其附加到前面。但是当您在浏览器中输入http://127.0.0.1/test/pages/edit 时,它会假定基数是/test/pages/,因此您的相对链接会在前面附加错误的基数。

【讨论】:

  • 是的,这是我的问题。现在修好了!谢谢 :)
【解决方案2】:

问题是你没有给 css 提供正确的路径。始终尝试从基本 url 调用样式/脚本,如下所示: 希望这会有所帮助。

   <?php 
if($_SERVER['REMOTE_ADDR'] == '127.0.0.1')
   define("SITEROOT","http://localhost/test/"); // base to your web directory ie,www or htdocs
    ?>
    //call style in this manner
    <link href="<?php echo SITEROOT; ?>Sourcefiles/cache/css/test.css" rel="stylesheet" type="text/css" />

【讨论】:

    猜你喜欢
    • 2019-10-02
    • 2017-12-22
    • 1970-01-01
    • 2018-06-29
    • 1970-01-01
    • 2018-12-05
    • 2012-12-18
    • 2011-10-09
    • 2016-02-08
    相关资源
    最近更新 更多