干净的URL测试失败D7

时间:2013-05-16 19:02:42

标签: php drupal mod-rewrite clean-urls

我花了大约四个小时试图让干净的网址正常工作,而且它确实正在努力。我是非常对Drupal的新手,在听到所有关于它的精彩内容之后,这是令人失望的。这是我的设置:

我有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时,都会说测试失败了。我知道这显然是我身边的一些错误,但它变得非常令人沮丧。谁能看到我在这里失踪的东西? :(

  • 我在SO中阅读了所有类似的问题,但他们的解决方案确实如此 不适合我。
  • 我也在drupal.stackexchange.com发布了这个帖子 但没有得到任何答案。
  • 我在SO PHP中发布它 社区更加活跃,毫无疑问,有许多人都知道 drupal深入。
  • 我真的希望有人帮我解决这个问题......

1 个答案:

答案 0 :(得分:2)

我不知道你是否仍然需要帮助,但是我花了很多时间试图在不久之前解决这个问题并找不到合适的答案。经过大量的反复试验后,我才开始工作。我不确切知道你的设置是怎样的,但这里是我的方式,以及我在drupal.org上的解决方案。

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

  

您好,

     

我有一个Drupal多站点设置,我正在尝试制作干净的URL   工作但似乎无法写出条件和规则   正常。我找到了许多答案,但没有一个有效。

     

正在读取我的.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和prod也一样)

     

Inside 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]