2017-03-06 42 views
0

我有一个简单的HTML项目名为“哥们”文件夹中坐在一个托管帐户,其完整的URL看起来像这样http://www.example.com/buddies/的.htaccess重定向,CSS /图像不再加载

我试图重新 - 把URL写成指向这样的PHP文件;

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ((?:css|images|js)/.*)$ /$1 [L] 

# About Us 
RewriteRule ^about_us/what_we_do/?$ about-what-we-do.php [NC,L] 
RewriteRule ^about_us/mission/?$ about-our-mission.php [NC,L] 
RewriteRule ^about_us/team/?$ about-team.php [NC,L] 
RewriteRule ^about_us/what_next/?$ about-what-next.php [NC,L] 

# Classes 
RewriteRule ^classes/learn/?$ classes-learn.php [NC,L] 
RewriteRule ^classes/1to1/?$ classes-one-to-one.php [NC,L] 
RewriteRule ^classes/swim_fit/?$ class-swim-fit.php [NC,L] 

# Information 
RewriteRule ^information/timetable/?$ info-timetable.php [NC,L] 
RewriteRule ^information/contact/?$ info-contact.php [NC,L] 
RewriteRule ^information/location/?$ info-locations.php [NC,L] 

这在重定向到URL到正确的PHP文件的伟大工程,但在这样做它的打破了链接到所有图像和CSS文件。我明白为什么它这样做,css和images文件夹不存在于路径中'about_us/what_we_do /'

如果这是在域的根目录下运行的,我只是简单地用'/'来代替所有图像/ css文件的前面,即'/css/style.css',而不是它们当前如何引用'css/style.css'。

有人可以提出一种方法,我仍然可以从文件夹的'CSS','图像'和'JS'服务器的CSS,图像和JavaScript?没有我必须在每个css /图像引用上预先设置'好友'文件夹。

编辑:我引用这样的样式表;

<!-- Stylesheet --> 
<link rel="stylesheet" type="text/css" href="css/style.css"> 
<link rel="stylesheet" type="text/css" href="css/style-768.css"> 
<link rel="stylesheet" type="text/css" href="css/style-992.css"> 

回答

1

如果所有的CSS文件都在目录/css,你可以重写每到这个目录

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (css/.*\.css)$ /$1 [L] 

RewriteCond有避免重写循环,如果请求是针对/css/...

图片和Javascript文件类似。你甚至可以将所有进入一个规则,如果你只是看看目录

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ((?:css|images|js)/.*)$ /$1 [L] 

这看起来开始与任一css/images/js/的任何请求。


如果CSS文件不在%{DOCUMENT_ROOT}/css,但%{DOCUMENT_ROOT}/buddies/css,目标必须进行相应的前缀,例如

RewriteRule ((?:css|images|js)/.*)$ /buddies/$1 [L] 
+0

我更喜欢第二种方法,但可悲的是,它仍然无法正常工作。我更新了原始问题中的代码。 – SheppardDigital

+0

CSS文件位于何处?它是'/ css/style.css'还是'/ buddies/css/style.css'? –

+0

他们位于/buddies/css/style.css – SheppardDigital

1

使用<base href="http://www.example.com/">所以它会将您的外部文件重定向到该目录。

+0

该解决方案确实有效,但是我希望避免向每个页面添加代码,并且如果我可以轻松维护,可以在单个文件(.htaccess)中进行管理。 – SheppardDigital