我有一个非常标准的 .htaccess 文件:
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L]
当我有一个参数时,它工作得很好。例如,这/mysite/index.php?c=home
就像这样工作/mysite/home
这/mysite/index.php?c=home&m=mymethod
就像这样工作/mysite/home/mymethod
......除了加载相关资源。
该 url/mysite/home/mymethod
似乎使 Web 浏览器具有相对路径,/mysite/home
而不是/mysite/
. 当/mysite/home/mymethod
我尝试使用相对路径(例如 html 表示css/site.css
)加载 css、图像或 js 文件时,浏览器会附加home/
到路径的开头。意思是,网络浏览器尝试加载home/css/site.css
而不是css/site.css
......简而言之,当我指定第二个参数时,相对路径会被破坏。
为什么我指定第二个 uri 参数时相对路径错误?