【问题标题】:Problem with mod_rewrite and linksmod_rewrite 和链接的问题
【发布时间】:2010-11-15 03:20:32
【问题描述】:

我正在开发一个基于 MVC 的应用程序,现在我已经设置了 .htaccess 重写规则。但是,我无法使所有内容正确显示。 这是我的 .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?a=$1 [L,NS]

我遇到了链接问题,因为最初的 URL 类似于“domain.com/folder/index.php?a=whatever/whatever2/asd”,但现在它们是“domain.com/folder/whatever” /whatever2/asd”。

我生成链接就像“<a href='index.php?a=new/qwerty'>Qwerty</a>”一样,但是现在当我尝试生成链接时,我必须执行“<a href='new/qwerty'>Qwerty</a>”之类的操作,你猜怎么着?例如,如果我在“domain.com/folder/new/lol”上并单击那种链接,我将被重定向到“domain.com/folder/new/new/qwerty”并且它是不打算那样工作。

我不能使用绝对路径,因为该软件的目的是让下载它的用户易于安装,我不知道用户将在哪里安装此软件,我也不希望用户必须修改任何代码。

非常感谢,

伊万

【问题讨论】:

    标签: mod-rewrite


    【解决方案1】:

    我终于解决了。

    我创建了自己的链接生成器函数,并从 $_SERVER['SCRIPT_NAME'] 中删除了 index.php 部分(它为我们提供了脚本的绝对路径)。 如果您有多个脚本,只需从该特殊变量中删除所有可能的脚本。

    function url($rel_path) {
      $start = str_replace("index.php", "", $_SERVER['SCRIPT_NAME']);
      return $start.$rel_path;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-22
      • 2013-11-11
      • 2011-12-01
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      • 2014-08-10
      • 2011-12-18
      相关资源
      最近更新 更多