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