【问题标题】:.htaccess goes wrong with specific hosting.htaccess 在特定主机上出错
【发布时间】:2012-03-27 09:28:44
【问题描述】:

我的 .htaccess 中有这段代码:

DirectoryIndex index.php -->
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]

它在我的本地主机 (MAMP) 和在线使用 MediaTemple 之类的主机运行良好,但使用 WAMP 和其他主机如 1and1 它不起作用!

您有什么想法可以调整它以便在任何地方工作吗?

谢谢!

【问题讨论】:

  • 我发现在某些情况下 htaccess 可以在某处工作但在其他地方无法使用,这有助于添加 RewriteBase,值得一试

标签: .htaccess codeigniter syntax hosting localhost


【解决方案1】:

尝试在您的index.php 中添加RewriteBase / 并删除./。如果 mod_rewrite 不可用,404 重定向应该可以解决问题,尽管我不确定如果你最终使用它,你的应用会有多强大(我自己从来不必使用那个方法)。

DirectoryIndex index.php

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    ErrorDocument 404 /index.php
</IfModule>

此外,您的第一个 RewriteCond 似乎没有必要,因为规则 2 和 3 负责它试图实现的目标。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-25
    • 2022-12-03
    • 2023-04-02
    • 1970-01-01
    • 2014-04-02
    相关资源
    最近更新 更多