htaccess重写资产目录

时间:2019-02-13 18:27:35

标签: php .htaccess codeigniter

我想使用htaccess将资产目录从mysite.com/demo/assets/重写为mysite.com/assets。

我尝试了很多组合,但是没有一个起作用,我认为这与我当前的htaccess参数有关

原始代码

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
AddDefaultCharset utf-8

我通过下面的代码实现了这一技巧,但是添加css参数的js函数不再起作用。

  RedirectMatch 301 ^/demo/assets/(.*)$ /assets/$1

我已经创建了实际的/ demo / assets文件夹并添加了具有波纹管参数的htaccess文件,它也可以解决CSS问题,但是js仍然无法正常工作

RewriteEngine on
RewriteBase /demo/assets/
RewriteRule ^(.*)$ /assets/$1 [L,NC]

任何人的帮助

好吧,经过一整夜的研究,我终于找到问题的根源。 js由于tinymce库而出现故障,当我在demo / assets / plugins中手动上载它时,一切似乎都正常!
现在,我试图找出为什么tinymce出现故障,并将其保存在共享的/ assets文件夹中。

希望我能收到建议。

奇怪的问题似乎在demo / assets / plugins / tinymce / langs目录中,该目录仅包含readme.md

2 个答案:

答案 0 :(得分:0)

在您的.htaccess文件中:

Redirect /demo/assets /assets

答案 1 :(得分:0)

使用.htaccess

尝试一下:

RewriteEngine On
RewriteRule ^demo/assets/$ /assets/ [L,R=301]

OR

RedirectMatch使用与URL路径匹配的正则表达式。

RedirectMatch 301 ^/demo/assets/$ /assets/

使用routes.php文件 (在application / config / routes.php中)

尝试一下:

$route['assets'] = "demo/assets/$1";

然后,您必须将编码中的每个链接从<?php echo site_url();?>demo/assets/更改为<?php echo site_url();?>assets/

注意:-这对于Codeigniter中的自定义URL是一个很好的解决方案。 无需更改.htaccess。

有关更多信息,请参阅CI文档。

https://codeigniter.com/user_guide/general/routing.html