如何从脚本URL隐藏子文件夹名称

时间:2015-02-01 08:34:06

标签: php .htaccess cakephp

我想在脚本网址中隐藏子文件夹名称:

<link rel="stylesheet" type="text/css" href="/abc/cde/css/bootstrap.min.css" />

我想改变href =&#34; /abc/cde/css/bootstrap.min.css"

HREF =&#34; /css/bootstrap.min.css"

说明:

我正在使用共享主机。 我的网站位于文件夹abc / cde /

我在根文件夹(/)

中使用以下.htaccess
Options -Indexes
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?myhost.com$
RewriteCond %{REQUEST_URI} !^/abc/cde/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /abc/cde/$1

RewriteCond %{HTTP_HOST} ^(www.)?myhost.com$
RewriteRule ^(/)?$ abc/cde/index.php [L] 

Everthing似乎没问题。我可以直接访问www.myhost.com。

但是

当我使用(查看源代码)时,子文件夹在那里可见

<link rel="stylesheet" type="text/css" href="/abc/cde/css/bootstrap.min.css" /> 

我也希望隐藏此路径。

仅供参考:我使用的是Cakephp

1 个答案:

答案 0 :(得分:1)

重写规则无法更改您的HTML源代码。您需要更改脚本代码,如下所示:

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

然后遵守以下规则:

Options -Indexes
RewriteEngine on

# to route css and js
RewriteRule ^(css|js)/ /abc/cde%{REQUEST_URI} [L,NC]

RewriteCond %{HTTP_HOST} ^(www\.)?myhost\.com$
RewriteCond %{REQUEST_URI} !^/abc/cde/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /abc/cde/$1 [L]

RewriteCond %{HTTP_HOST} ^(www\.)?myhost\.com$
RewriteRule ^/?$ abc/cde/index.php [L]