我在重写URL时遇到了一些问题
我的.htacces文件:
RewriteEngine On RewriteBase /bsc/ RewriteRule ^(.+/?)$index.PHP?url=$1 [NC,QSA,L]
bsc/ ---|.htaccess ---|index.PHP ---|css/ -------|style.css ---|images/ ----------|logo.png ----------|image1.jpg ----------|image2.jpg ---|controller/ --------------|bootstrap.PHP ...
当我有下一个链接
localhost/bsc/page.html
比我的css工作或我可以去上班.
但是当我有下一个链接时:
localhost/bsc/page/subpage.html localhost/bsc/page/subpage/subsubpage.html localhost/bsc/page/subpage/subsubpage/subsubsubpage.html
我无法让css工作,css被重定向到
localhost/bsc/page/css/style.css localhost/bsc/page/subpage/css/style.css localhost/bsc/page/subpage/subsubpage/css/style.css
问题的第二部分是我的链接没有相同的扩展名或任何扩展名.
下一种情况是可能的:
localhost/bsc/page/subpage localhost/bsc/page/subpage/ localhost/bsc/page/subpage.PHP localhost/bsc/page/subpage.html localhost/bsc/page/subpage/subsubpage localhost/bsc/page/subpage/subsubpage/ localhost/bsc/page/subpage/subsubpage.PHP localhost/bsc/page/subpage/subsubpage.html ...
现在定义的重写规则适用于不同的链接,但如何为css和图像添加排除的规则?
我接下来.htaccess适用于所有条件的css:
RewriteEngine On RewriteBase /bsc/ RewriteCond %{REQUEST_FILENAME} !\.css RewriteRule ^(.+/?)$index.PHP?url=$1 [NC,L]
阅读评论后有一段时间我得到了下一个.htaccess文件并没有那么糟糕的结果:
RewriteEngine On RewriteBase /bsc/ RewriteRule ^(.+/?)?(/|\.htm|\.PHP|\.html|/[^.]*)$index.PHP?url=$1 [NC,L]
<link rel="stylesheet" type="text/css" href="/bsc/css/style.css" />
现在,当我无法获得正确的URL请求时,URL中只有一个条件.下一个URL不接收最后一个参数:
localhost/bsc/page/subpage localhost/bsc/page/subpage/subsubpage
我没有收到子页面或子页面,其他条件正在运行.在这种情况下apache和.htaccess托盘来查找文件或文件夹….
是否可以添加缺失条件,或者是否可以制定一些最简单的重写规则或更多规则
解决方法
您可能只需要为您使用绝对网址,
即
<link rel="stylesheet" type="text/css" href="/css/style.css">
代替
<link rel="stylesheet" type="text/css" href="css/style.css">
在前面放一个斜线迫使它到网址的“根”,从而使其在整个子页面中保持一致.