【问题标题】:Mod rewrite / clean urls problemMod重写/清理网址问题
【发布时间】:2009-05-04 16:39:34
【问题描述】:

多年来,我一直在使用 drupal 4.7 安装,最近遇到了一个问题。也就是说,重写后的 URL 现在显示这些字符: ?q= 在每个 drupal 生成的 URL 中,如下所示:http://sitename.com/?q=path/alias,之前是:http://sitename.com/path/alias

我对为什么会发生这种情况的最佳猜测是,我最近开始使用一些 PHP 代码在几个侧边栏中添加特定于上下文的链接样式。代码如下:

<?php   $alias= $_GET['q']; ?>

<a <?php $pos=strpos($alias,"1234"); // node number
if(!$pos == false) {
echo 'style="color:black"'; 
} ?> href="internal/link/alias">Internal Link</a>

或者最近:

<?php $path = isset($_GET['q']) ? $_GET['q'] : '<front>';
$alias = url($path, array('absolute' => TRUE)); ?> 

<a <?php $pos=strpos($alias,"internal/link/alias"); 
if(!$pos == false) {
echo 'style="color:black"';
} ?> href="internal/link/alias">Internal Link</a>

这可能是问题吗?如果是这样,关于修复的任何想法?

【问题讨论】:

  • 如果您注释掉该代码,它会停止这样做吗?这将是验证它是否导致它的最佳方法。
  • 另外,请确保您没有修改您的 .htaccess。您的代码看起来不应该添加 ?= 给我。
  • 感谢您的想法,如果没有其他问题会尝试...

标签: php drupal


【解决方案1】:

我认为您的干净网址已损坏。当您没有打开干净的 URL 时,您的所有 URL 将看起来像 http://example.com/?q=/foo/bar/baz。重写规则将请求从 http://example.com/foo/bar/baz 转换为 http://example.com/?q=/foo/bar/baz 以在内部处理。

您需要返回并确保您的重写规则仍然有效(您甚至可以转到 http://example.com/foo/bar/bazz 吗?)并且 Drupal 已打开干净的 URL。

【讨论】:

  • 是的,重写规则似乎仍然有效,因为example.com/foo/bar/bazz 仍然有效。只有 drupal 生成的 URL 添加了额外的字符 ?q=
【解决方案2】:

进入 admin/settings 并确保 Clean URLs 已打开。

【讨论】:

    【解决方案3】:

    我不认为是你的 sn-p 造成的。它只从数据库中读取;它不会更改 URL。 mod_rewrite 是否仍然启用?这可能是由最近对服务器配置的更改引起的。检查phpinfo()的输出。

    顺便说一下,url() 的选项 $absolute 在 Drupal 4.7 中是 passed as a separate argument,而不是在 $options 数组中。你的电话应该是:

    url($path, $absolute=TRUE);
    

    【讨论】:

    • 谢谢艾曼!有用的信息。将尽我所能检查。不幸的是,我的服务器访问权限非常有限,所以我的解决方法必须是创新的……说来话长。
    【解决方案4】:

    尝试以下方法:

    1. 再次将未修改的 .htaccess 文件上传到站点根目录

    2. 确保您的 apache 有可用的 mod_rewrite。如果你有 shell 访问权限并且它是 Ubuntu/Debian 机器,那么就这样做

      a2enmod 重写

    3. 检查是否在 admin/settings 上启用了该选项

    4. 在根文件夹中创建一个简单的 .php 文件并输入:

      phpinfo();

    那就看看模块是否正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多