Apache 子文件夹中静态文件的重写规则
我的网站有以下文件夹结构:Apache 子文件夹中静态文件的重写规则,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我的网站有以下文件夹结构: index.php .htaccess public_html/css/* (css files) public_html/images/* (image files) public_html/js/* (javascript files) 子文件夹public_html中的所有静态文件都链接到我的页面文件中,而不包含public_html:例如/images/logo/logo.png 我设置了以下.htaccess文件,该文件在本地apache和Web空间上运行
index.php
.htaccess
public_html/css/* (css files)
public_html/images/* (image files)
public_html/js/* (javascript files)
子文件夹public_html中的所有静态文件都链接到我的页面文件中,而不包含public_html:例如/images/logo/logo.png
我设置了以下.htaccess文件,该文件在本地apache和Web空间上运行良好,但在客户Web空间上不起作用:
RewriteEngine On
RewriteBase /
RewriteCond %{DOCUMENT_ROOT}/public_html/%{REQUEST_URI} -f
RewriteRule ^(.*)$ /public_html/$1 [L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond ${REQUEST_URI} ^/public_html/
RewriteRule .* - [L]
RewriteRule ^ index.php [QSA,L]
这条线
RewriteCond %{DOCUMENT_ROOT}/public_html/%{REQUEST_URI} -f
必须重写为(2种可能性)
另外,在RewriteRule
中的public\u html
之前不需要前导斜杠/
,因为您已经在RewriteBase
中定义了它
那么这条线,
RewriteCond ${REQUEST_URI} ^/public_html/
必须重写为
RewriteCond %{REQUEST_URI} ^/public_html/
打字错误(将$
替换为%
)
结论
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_URI} ^/public_html/ [NC]
RewriteRule ^ - [L]
RewriteCond %{DOCUMENT_ROOT}/public_html/$1 -f
RewriteRule ^(.*)$ public_html/$1 [L]
RewriteRule ^ index.php [L,QSA]
这条线
RewriteCond %{DOCUMENT_ROOT}/public_html/%{REQUEST_URI} -f
必须重写为(2种可能性)
另外,在RewriteRule
中的public\u html
之前不需要前导斜杠/
,因为您已经在RewriteBase
中定义了它
那么这条线,
RewriteCond ${REQUEST_URI} ^/public_html/
必须重写为
RewriteCond %{REQUEST_URI} ^/public_html/
打字错误(将$
替换为%
)
结论
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_URI} ^/public_html/ [NC]
RewriteRule ^ - [L]
RewriteCond %{DOCUMENT_ROOT}/public_html/$1 -f
RewriteRule ^(.*)$ public_html/$1 [L]
RewriteRule ^ index.php [L,QSA]
感谢您的更正,但更改不起作用。图像、css和js仍然丢失(404(未找到)消息)。您确定在您的客户Web空间上启用了mod_rewrite并且允许htaccess吗?我认为允许.htaccess,因为当我评论RewriteBase/行时,我会看到一个500错误页面。但我不确定,是否有其他apache设置阻止了正确的重写?!您能签入apache错误日志并重写日志吗?谢谢您的更正,但是更改不起作用。图像、css和js仍然丢失(404(未找到)消息)。您确定在您的客户Web空间上启用了mod_rewrite并且允许htaccess吗?我认为允许.htaccess,因为当我评论RewriteBase/行时,我会看到一个500错误页面。但我不确定,是否有其他apache设置阻止了正确的重写?!你能签入apache错误日志并重写日志吗?