php rewriteEngine使用.htaccess不显示css

时间:2013-07-29 13:50:56

标签: php css .htaccess mod-rewrite

我使用.htaccess重写网址。请参阅以下示例:

我的文件夹树状就像那样:

  • mysite(文件夹)
    • css(文件夹)
      • 的style.css
    • mypage.php
    • 的.htaccess

当我致电http://localhost/mysite/mypage/myid时,它会被重定向到http://localhost/mysite/mypage.php?id=myid

问题在于它似乎没有调用我的css:

<link href="css/style.css" rel="stylesheet" type="text/css" />

我的.htaccess的内容是:

RewriteEngine on
RewriteBase /mysite
RewriteRule ^mypage/([^/]*) mypage.php?id=$1

提前致谢

修改:

我尝试了解决方案:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

我仍然无法得到名为:/

的css

编辑2:

好的,我可以按照这样的方式调用我的CSS:

<link href="/mysite/css/style.css" rel="stylesheet" type="text/css" />

看起来我还必须使用路径“/ mysite /”

调用我在html中的所有图像

3 个答案:

答案 0 :(得分:1)

添加重写条件:

RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^mypage/([^/]*) mypage.php?id=$1

现在你的css(以及其他文件和目录)不会通过rewriterule发送

答案 1 :(得分:1)

您需要告诉重写引擎忽略实际存在的目录和文件:

RewriteEngine on
RewriteBase /mysite
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^mypage/([^/]*) mypage.php?id=$1

答案 2 :(得分:1)

你的造型现在被称为亲戚,所以你应该称之为绝对。

没有/ myid / css /文件夹,这就是您的代码正在寻找的内容。

<link href="<?php echo $_SERVER['SCRIPT_URI'];?>css/style.css" rel="stylesheet" type="text/css" />