【问题标题】:codeigniter .htaccess won't work after I uploaded my files to the server将文件上传到服务器后,codeigniter .htaccess 将不起作用
【发布时间】:2012-01-26 03:49:26
【问题描述】:

我正在使用 codeigniter。这真的让我很沮丧。我试图删除这个 index.php 的东西。当我在本地服务器(localhost)中运行我的代码时,它运行良好。它加载了我所有的 CSS 和 JS。现在该应用程序在 [http://www.socialfansmafia.com][1] 上在线

[1]: http://www.socialfansmafia.com 。你可以检查一下。它会要求你用你的推特登录。别担心,这不是骗局。我正在使用 elliot houghin twitter 库。

我的 css 和 JS 都没有加载。请帮帮我。我在接下来的 4 小时内收到了一份演示文稿 :-(

这是我的 .htaccess :

RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

我已经在配置文件中设置了$config['index_page'] = '';,并且所有这些代码都在本地主机中成功运行..但它不会在在线服务器上工作......有什么建议吗?最好的问候 - 阿尔芬

【问题讨论】:

    标签: codeigniter


    【解决方案1】:

    我用:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule (.*) index.php/$1 [L,PT]
    

    【讨论】:

    • 我发现这条规则更灵活,因为它会让 Apache 检查请求的文件,看看它是否不是常规文件或目录。如果没有,它会将请求的路径附加到 index.php 中,将其转换为 CodeIgniter URI。如果您的可公开访问的目录结构发生变化,您无需更改 .htaccess。
    • 非常感谢。我会为我的进一步发展提供您的建议。但是,目前我认为RewriteCond $1 !^(index\.php|images|robots\.txt|css|js) 对我来说非常好。谢谢:-)
    • 我改变主意了。我有 mp3 文件可以使用,您的解决方案对我来说更具竞争力 :-) ...谢谢!!
    • 不错的解决方案,但请注意使用此 .htaccess 文件的 docroot 中(或下方)实际存在哪些文件和目录。如果您有隐藏目录(.svn 或 .git)或其他包含敏感信息的文件 - 那么它们将是可访问的。
    • 允许公开原始访问 SVN 或 GIT 存储库是一种不好的做法,因此我认为这种情况不太可能发生。应该做的是使用 svn export 或 git archive 来获得没有私有 .svn 或 .git 子目录的存储库的干净副本。
    【解决方案2】:

    您需要更改 .htaccess 以允许 css 和 js 文件夹:

    # just add css|js to the RewriteCond
    
    RewriteEngine on
    RewriteBase /
    RewriteCond $1 !^(index\.php|images|robots\.txt|css|js) #update this line
    RewriteRule ^(.*)$ /index.php/$1 [L]
    

    这告诉 apache 允许 web 访问 cssjs 文件夹中的文件。否则,它将这些请求路由到 index.php 文件(仅发出 404)。

    【讨论】:

      猜你喜欢
      • 2020-04-29
      • 2017-06-07
      • 1970-01-01
      • 2013-02-22
      • 1970-01-01
      • 2018-03-14
      • 2013-06-08
      • 2012-03-10
      • 1970-01-01
      相关资源
      最近更新 更多