PHRoute重定向我的资源

时间:2016-11-08 00:31:50

标签: php .htaccess

我从头开始构建一个小的mvc框架时遇到了问题。我正在使用PHP,我已经取消了PHRoute包。问题是它尝试将请求分派给文件,作为应用程序请求(而不是传递文件,它试图找到路由)。这导致500错误(css或js文件的路由不存在)。我试图绝对定义路径,例如

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

但是我仍然得到相同的结果。

我的.htaccess是以下(并且位于网络根目录中)

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

我的文件夹结构是

--root

   --public

     --css

     --js

     --index.php (router)

     --.htaccess

我错过了什么?

2 个答案:

答案 0 :(得分:0)

我和你有同样的问题。我刚刚在CSS文件之前添加了“BASE_URL”。

<link type="text/css" rel="stylesheet" href="<?php echo base_url ?>css/styles.css">

答案 1 :(得分:0)

  1. 检查您的.htaccess文件是否具有指令“ RewriteCond%{REQUEST_FILENAME}!-f”。
  2. 检查/css/styles.css的结果绝对路径是否正确。

当.htaccess文件具有该指令时,如果结果绝对路径正确,则不应调用路由器。