2013-05-16 51 views
3

我花了大约四个小时试图让干净的URL工作,它真的在做我的头。我是非常新的Drupal和听到所有关于它的美妙的事情后,这是令人失望的。这里是我的设置:干净的URL测试失败D7

我有XAMPP on windows 7,并安装Drupal 7.22到一个文件夹c:\code\drupal

在我httpd.conf,我有Alias /code "C:\code"这工作,因为我有内部c:\code其他文件夹中运行得很好

drupal .htaccess文件作品,因为如果我在那里添加垃圾行我得到一个服务器错误

.htaccess我试过所有组合RewriteBase我能想到的:

RewriteBase/
RewriteBase /code 
RewriteBase /code/drupal 
RewriteBase /drupal 

mod_rewrite的作品,因为我已经有其他装置,使其正确地使用它。

我也试过直接将http://localhost/code/drupal/admin/config/search/clean-urls但给了我一个404 error

我每次回去admin > config > clean URLS,它说,测试失败。我知道这显然是我身边的一些错误,但它变得非常令人沮丧。任何人都可以看到我在这里失踪? :(

  • 我所以在这里读取所有类似的问题,但他们的解决方案并没有 为我工作。
  • drupal.stackexchange.com登载以及 ,但没有得到任何答案。
  • 我我在这里张贴,因为PHP SO社区 更是活跃,无疑有很多谁知道在深度 的Drupal。
  • 我真的很希望有人可以帮助我弄清楚了这一点...
+0

如果你看一下其中显示该主机的请愿书错误日志,被改写的网址是什么?或者它要求的网址没有给它重写规则? – Chayemor

+0

它没有重写规则。它使用普通的URL访问drupal页面,并给出200响应。常规URL会显示一条消息,指出无法启用重写。在线文档提出了我在上面提到的所有问题 - 但无济于事。而条目access.log里不是error.log因为没有本身的错误.. –

+0

尝试与 RewriteBase/ 重写规则的东西很简单,像'RewriteEngine叙述更换整个的.htaccess^* $ HTTP://谷歌.com是否将您重定向到google.com?你也可以尝试写日志文件重写模块,只需添加到您的以下httpd.conf文件:'RewriteLog“/home/rewrite.log” RewriteLogLevel 9'也许会出现在日志中一些有趣的事情:) – tulvit

回答

2

我不知道你是否仍然需要帮助,但我花了很多时间试图弄清楚自己前一段时间,并找不到正确的答案。在做了大量的试验和错误之后,我做了工作。我不知道你的设置究竟是如何,但这里是我的,以及我的解决方案drupal.org

(这是我原来的问题的一部分,我的完整解决方案的复印件)

嗨,

我有一个Drupal多站点的设置,我试图让清洁的网址 工作但似乎无法正确编写条件和规则 。我找到了很多答案,但都没有成功。

我的.htaccess文件正在读取没有问题,规则是 正在使用(我试图设置重写规则为完整的地址,但它只是给我的主页,我不能去其他地方) 。

这里是它是如何设置:

DEV:URL1 www.site1.domain.fr/dev
                  URL2 www.site2.site1.domain.fr/dev

PROD URL1 www.site1.domain.fr
                      URL2 www.site2.site1.domain.fr

在服务器上:的/ dev(一个drupal的安装)
                                             /PROD(另一个Drupal的安装 但相同的内容)

我多点是设置为这样的:
/sites/site1.domain.fr
/sites/site2.site1.domain.fr(dev的同样的事情和正式版)

内sites.php:

$sites = array( 
'www.site1.domain.fr' => 'site1.domain.fr', 
'www.site2.site1.domain.fr' => 'site2.site1.domain.fr',) 


解决方案

我终于可以通过反复试验来修复它。在任何情况下,你 遇到同样的问题,这是我如何固定它:

DEV: 

RewriteBase /dev 

# Main site 
RewriteCond %{HTTP_HOST} ^site1\.domain\.fr [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ site1.domain.fr/dev/index.php?q=$1 [L,QSA] 

# Site 2 
RewriteCond %{HTTP_HOST} ^site2.site1\.domain\.fr [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ site2.site1.domain.fr/dev/index.php?q=$1 [L,QSA] 


PROD: 

RewriteBase/

# Main site 
RewriteCond %{HTTP_HOST} ^site1\.domain\.fr [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ site1.domain.fr/index.php?q=$1 [L,QSA] 

# Site 2 
RewriteCond %{HTTP_HOST} ^site2.site1\.domain\.fr [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ site2.site1.domain.fr/index.php?q=$1 [L,QSA] 
+0

而不是链接到您的解决方案,你可以在这里描述它吗?否则,你的答案没有太多实质内容,可能会遭受链接腐败。 –

+0

这里我加了它。对不起,我粘贴了一段时间后,所有东西都粘在一起了。 – CarolineCB

+0

@ CarolineCB - 我意识到我从来没有把你的答案标记为正确!呃...差不多一年已经太晚了,但还是 - 谢谢! –