【发布时间】:2016-01-20 14:28:43
【问题描述】:
我正在本地服务器的根文件夹中开发网站,问题是当我的客户告诉我将网站上传到他们的服务器时,它位于子文件夹中。所以url一直是这样的。 http://example.com/myproject
这种格式的问题是我所有的 css、js、ajax 调用都搞砸了,因为当我尝试检查 Firebug/chrome 控制台时,我看到了一个 http://example.com/assets/css/main.css ,实际上它应该是 http://example.com/myproject/assets/css/main.css
我所有的脚本都被编码成这样:
<link rel="stylesheet" href="/assets/css/main.css"> 因为当项目不在子文件夹中时,它可以完美运行。
我现在的问题是,是否有一个技巧,可能在 .htaccess 或 mod_rewrite 中,可以让我告诉浏览器总是在我的所有脚本调用中添加 /myproject?
这样做的原因是我不想更改所有脚本调用并添加/myproject/...
这是我的 .htaccess 示例:
Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
<Files .*>
Order Deny,Allow
Deny From All
</Files>
# Allow asset folders through
RewriteRule ^(fuel/modules/(.+)?/assets/(.+)) - [L]
# Protect application and system files from being viewed
RewriteRule ^(fuel/install/.+|fuel/crons/.+|fuel/data_backup/.+|fuel/codeigniter/.+|fuel/modules/.+|fuel/application/.+) - [F,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [L]
# Prevents access to dot files (.git, .htaccess) - security.
RewriteCond %{SCRIPT_FILENAME} -d
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule "(^|/)\." - [F]
</IfModule>
Options -Indexes
您的帮助将不胜感激!谢谢!
【问题讨论】:
-
您是否有权访问文档根目录中的 .htaccess 文件?
-
<link rel="stylesheet" href="/assets/css/main,css">typo/comma 如果这是你的真实代码。 -
@w3d 不幸的是我没有。但我可以询问是否有解决方案。
-
要回答这个问题,请查看php.net/manual/en/ini.core.php auto_append_file 和 auto_prepend_file - 可能是您正在寻找的。span>
-
@Fred-ii- 抱歉,我似乎无法想象使用那个。一直在谷歌上阅读它,但仍然无法掌握将其应用到我目前的情况。
标签: php .htaccess codeigniter mod-rewrite fuelcms