3

我花了大约四个小时试图让干净的 URL 工作,这真的让我很头疼。我非常陌生,在听到所有关于它的美妙事物之后,这令人失望。这是我的设置:

我有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但没有得到任何答案。
  • 我在这里发布它是因为 SO PHP 社区更加活跃,而且毫无疑问有很多人深入了解了 drupal。
  • 我真的希望有人能帮我解决这个问题......
4

1 回答 1

2

我不知道您是否还需要帮助,但我花了很多时间试图自己解决这个问题,但找不到正确的答案。在做了很多试验和错误之后,我让它工作了。我不确切知道您的设置如何,但这是我的设置,以及我在drupal.org上的解决方案。

(这是我原始问题的一部分和我的完整解决方案的副本)

你好,

我有一个 Drupal 多站点设置,我正在尝试使 Clean URL 工作,但似乎无法正确编写条件和规则。我找到了很多答案,但没有一个有效。

我的 .htaccess 文件正在被毫无问题地读取,并且正在使用规则(我尝试将重写规则设置为完整地址,但它只给了我主页,我无法去其他任何地方)。

这是它的设置方式:

开发: URL1 www.site1.domain.fr/dev
         URL2 www.site2.site1.domain.fr/dev

产品 URL1 www.site1.domain.fr
           URL2 www.site2.site1.domain.fr

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

我的多站点设置如下:
/sites/site1.domain.fr
/sites/site2.site1.domain.fr (开发和产品相同)

在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]
于 2013-07-18T15:40:08.110 回答