0

私はVirtualHostディレクティブを持っています/etc/apache2/openpanel.d/www.example.com.conf

<VirtualHost *:80>
   ServerAdmin        "jon@example.com"
   DocumentRoot       /home/openpanel-admin/sites/www.example.com/public_html
   ServerName         www.example.com
   ServerAlias        example.com
   <Directory /home/openpanel-admin/sites/www.example.com/public_html>
   AllowOverride      All
   Allow from all
   </Directory>
   Include /etc/apache2/openpanel.d//www.example.com.inc/[^.#]*
   Include /etc/apache2/openpanel.d//global.inc
</VirtualHost>

そして、私は次のようにしています/etc/apache2/openpanel.d/www.example.com.inc/RewriteRules

<Directory /home/openpanel-admin/sites/www.stallfinder.com/public_html>
        Options +FollowSymlinks
        RewriteEngine On

        RewriteRule agricultural-show-c780.html /search/event/agricultural-shows/1/ [R=301,L]
        RewriteRule antique-fair-c596.html /search/event/antique-and-collectors-fairs/1/ [R=301,L]
        RewriteRule baby-and-toddler-fairs-c896.html /search/event/baby-and-toddler-fairs/1/ [R=301,L]
        RewriteRule book-fair-c631.html /search/event/book-fairs/1/ [R=301,L]

        # etc... there are ~3000 of these
</Directory>

そして、私は.htaccessファイルを持っています/home/openpanel-admin/sites/www.example.com/public_html

Options +FollowSymlinks

RewriteEngine On
RewriteBase /

# Search pages
RewriteRule ^search/(stallholder|event)/?$ /find-$1.php [L]
RewriteRule ^search/(stallholder|event)/([^/]+)/([0-9]+)/? /$1.php?name=$2&id=$3 [L]

ただし、インクルードファイル(RewriteRules)のRewriteRulesは、解析/使用されていないようです。

許可されていないものをそこに入れることができ、apacheが構成ファイルのロードに失敗するため、ファイルが含まれていますが、Apacheリダイレクトログをオンにすると、[perdir]行のみがすべてのRewriteRulesのように表示されますRewriteRulesインクルードで取得されたものは処理されていません。

ファイルは空で、ファイルglobal.inc内のRewriteRulesは正常に機能し.htaccessます。

私が間違っていることの手がかりはありますか?

4

1 に答える 1

1

.htaccessにディレクティブを追加RewriteOptionsして、親(上位)レベルで書き換えルールを実行できるようにしてください。

http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriteoptions

于 2012-05-22T17:41:44.110 に答える