当前位置: 首页 > 知识库问答 >
问题:

使用htaccess文件重写和访问图像、脚本css和js的URl

陈奇希
2023-03-14

我需要访问页面中的图像、css和js文件,但我不知道如何编写。需要htaccess文件。

我用的是CodeIgniter。

矿山文件夹层次结构:

   /cv
    |__ cartao_virtual
    |   |
    |   |__ cms
    |   |   |__ assets
    |   |   |   |
    |   |   |   |__ **css**
    |   |   |   |   |__ **images**
    |   |   |   |
    |   |   |   |__ **js**
    |   |   |   
    |   |   |__ controllers
    |   |   |__ models
    |   |   |__ views
    |   |   
    |   |__ site
    |       |__ assets
    |       |   |
    |       |   |__ css
    |       |   |   |__ images
    |       |   |
    |       |   |__ js
    |       |   
    |       |__ controllers
    |       |__ models
    |       |__ views
    |      
    |__ system
    |
    |__.htacess
    |__ site.php (default CodeIgniter index.php)
    |__ cms.php (default CodeIgniter index.php)

我目前的. htaccess是:

    RewriteCond $1 !^(cms\.php|cms|assets)
    RewriteRule ^cms$ cms.php [L]
    RewriteRule ^cms/(.*)$ cms.php/$1 [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ site.php/$1 [L]

有了它,我就可以访问cms和站点控制器以及您的方法,我希望这样。

我在想象这样的事情:

    RewriteEngine on
    RewriteCond $1 !^(cms\.php|cms)
    RewriteRule ^cms$ cms.php [L]
    RewriteRule ^cms/(.*)$ cms.php/$1 [L]

    RewriteCond $1 !^(^cms/assets|site/assets)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ site.php/$1 [L]

    RewriteCond $1 !^(site/assets)
    RewriteRule ^site/assets/(.*)$ cartao_virtual\/site\/assets\/$1 [L]

    RewriteCond $1 !^(cms/assets)
    RewriteRule ^cms/assets/(.*)$ cartao_virtual\/cms\/assets\/$1 [L]

感谢先进。

共有1个答案

南门茂才
2023-03-14

无论您在哪里重写(.*),都需要以下重写条件才能不包含真实文件。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

现在,您无意中重定向了所有流量,无论文件或目录是否存在,只有一条规则除外。

 类似资料:
  • 问题内容: 我遵守规则 它将URL 重定向到。页面成功重定向,但问题未加载, CSS,js文件位于和下 一种解决方案是使用 绝对路径 (例如/ CSS或/ js而不是CSS /,/ js,但这似乎不是一个可靠的解决方案,因为我们必须在所有文件上进行更改, 是否有其他基于规则的解决方案,这些解决方案独立于编辑所有PHP文件并让我们使用“相对路径”? 问题答案: 不要偷懒,将资源中的相对URI更改为根

  • 问题内容: 我正在尝试使用模式重写使用户友好的URL。我的问题是,在给URL提供“名称”之类的类别后,当我使用新的URL调用页面时,它无法加载CSS文件或图像。 我有一个类似的链接: 本地主机/ mywebsite /项目?id = 22 新链接就像 本地主机/ mywebsite /项目/22/myproject.project htaccess代码: (这可能不是100%正确,但我现在无法访问

  • 问题内容: 我以前从未使用过CodeIgniter,更不用说任何php框架了,我想我可以试试看。一切正常,除了我似乎无法从URL中删除index.php并仍然访问我的页面。 我从未使用过MVC结构,因此我正在学习中,如果做错了,请原谅我。 我试图通过简单地键入 localhost / ci / about* 来访问我创建的名为“ about_page.php”的视图 , 但是目前我只能使用 loc

  • 我试着用Bulma CSS使这个块图像带有文本。我尝试了很多东西(相对,z-index等),但我没有成功为台式机或移动设备做一些很棒的东西。每一次,文本都被溢出或得到框外。我无法设置标题字符限制,所以如果可能,我也尝试在第二行使用断字。 下面是我正在寻找的示例: 以下是我的HTML: 和当前CSS(不工作): 结果: 有没有一些关于这种事情的提示,或者Bulma的扩展? 谢谢你的帮助!

  • 问题内容: 这是场景: 根文件夹中有一个文件 一些文件包含在其中是在文件夹中。 根文件夹中还有1个其他文件()用于表单提交操作。 我想通过htaccess 限制直接用户访问文件夹中的文件。也为。但是include将适用于文件。就像,如果用户键入,它将对其进行限制(可以重定向到错误页面)。 问题答案: 我只是将文件夹移出了Web根目录,但是如果您想阻止直接访问整个文件夹,则可以在该文件夹中放置一个文

  • 问题内容: 有些脚本只能通过ajax使用,并且我不希望用户直接从浏览器运行这些脚本。我使用jQuery进行所有ajax调用,并将所有ajax文件保存在名为ajax的文件夹中。 因此,我希望创建一个htaccess文件来检查ajax请求(HTTP_X_REQUESTED_WITH)并拒绝该文件夹中的所有其他请求。(我知道可以伪造http标头,但我想不出更好的解决方案)。我尝试了这个: ReWrite