我正在尝试让apache重写cond / rules来重写我的bootstrap文件的位置,这些文件位于名为/ assets的文件夹中,该文件夹不在根目录中。
我添加了规则:
RewriteCond $1 !^(index\.php|assets|)
RewriteRule ^(.*)$ /index.php?/$1 [L]
试图抓住一个网址,例如:
<link rel="stylesheet" href="assets/css/app.css">
浏览器尝试查找的完整网址是:
http://feeder.xxxxx.com/site/page/alert/v1/assets/plugins/jquery/jquery.min.js
网址中包含REST /信息错误。
我需要将其转移到:
http://feeder.xxxxx.com/templates/assets/css/app.css
我目前正在使用codeigniter(除了MVC框架之外我不认为这个问题有任何不同)
真诚地感谢您的帮助。非常感谢。
答案 0 :(得分:0)
我认为你需要使用绝对网址来统治工作,见下文:
<link rel="stylesheet" href="/assets/css/app.css">
如果您需要将/ assets重定向到/ templates / assets,则需要另一条规则:
RewriteRule ^/?assets/(.+) /templates/assets/$1 [L]
最终的.htaccess应该是这样的:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(assets)
RewriteRule ^/?(.*)$ /index.php?/$1 [L]
# Redirect /assets to /templates/assets
RewriteRule ^/?assets/(.+) /templates/assets/$1 [L]
在旁注中,?
之后问号(index.php
)的显示似乎不对,看起来您的应用程序配置错误(可能$config['enable_query_strings']
设置为{{1} }})。有关详细信息,请参阅CodeIgniter URLs。