我在一个名为'好友的文件夹中的托管帐户上有一个简单的HTML项目,其完整网址看起来像这样http://www.example.com/buddies/
我试图重写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]
这可以很好地重定向到正确的PHP文件的URL,但是在这样做时,它打破了所有图像和css文件的链接。我理解为什么要这样做,css和图像文件夹不存在于路径中#about_us / what_we_do /'
如果这是在域的根目录中运行的,我只需要添加' /'到所有图像/ css文件的前面,即' /css/style.css'而不是他们目前如何引用&css / style.css'。
有人可以提出一种方法,我仍然可以从文件夹中提供服务css,图片和javascript,css','图片'和' js'?没有我必须在'伙伴之前文件夹到每个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">
答案 0 :(得分:1)
使用<base href="http://www.example.com/">
,以便将外部文件重定向到该目录。
答案 1 :(得分: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]