3

サーバーへのルートアクセス権がない場合にのみ使用する必要があるため、.htaccessファイルを使用せずにdrupal 7で書き換え機能を有効にしようとしています(したがって、apacheのWebサイトによると)

これ以上の別れはありませんが、これが私の構成です

<VirtualHost *:80>
  ServerName  www.example.com
  ServerAlias example.com

  DirectoryIndex index.php
  DocumentRoot /var/www/example.com/public

  ErrorDocument 404 /index.php

  LogLevel warn
  ErrorLog  /var/www/example.com/log/error.log
  CustomLog /var/www/example.com/log/access.log combined

  <Directory "/var/www/example.com/public">
    Options -Indexes +FollowSymLinks +ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all

    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !=/favicon.ico
    RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]
  </Directory>
</VirtualHost>

書き換え構成は、.htaccess ファイルにある場合は機能しましたが、vhost ファイル内に配置した場合は機能しませんでした。

ここで何か間違っていることがわかりますか?

4

1 に答える 1

1

'/'.htaccess ではなくなったので、書き換えルールにプレフィックスを含めるべきではないと思います。Sooで試してみてください:

RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

.htaccess 参照を削除することをお勧めします。これがファイルシステムのルートから開始するようAllowOverride Noneに、命令を配置する必要があります。<Directory />また必要ないと思われる場合+ExecCGI。.htaccess を使用せずに Drupal の apache 構成を詳しく調べたい場合は、この詳細なリソースも確認してください。

于 2013-03-07T13:05:35.113 に答える