2009-05-25 11 views
0
<VirtualHost *:80> 
    DocumentRoot /lf/main/com 
    ServerName 74.220.215.241/~laborfa2 
    ServerAlias 74.220.215.241/~laborfa2 
    RewriteEngine on 
    #RewriteLogLevel 2 
    #RewriteLog logs/rewrite.log 
    RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME}.php -f 
    RewriteRule ^/(.*)(/?)$ /$1.php [L] 
    RewriteRule ^/([a-zA-Z]+)([a-zA-Z0-9_]{3,15})(/?)$ /profile.php?fairid=$1$2 [L] 
    RewriteRule ^/([a-zA-Z]+)([a-zA-Z0-9_]{3,15})/([a-z]*)(/?)$ /$3.php?fairid=$1$2 [L]  

</VirtualHost> 

Linux(htt.vhost)ではうまく動作しますが、.htaccessに貼り付けても機能しません。なぜこの設定コードが.htaccessで動作しないのですか?

だから私はそれを動作させるために変更する必要がありますか?

+0

正しくコードをフォーマットしてください!各行を4つのスペース文字でインデントして、コードブロックとしてフォーマットします。 –

答えて

0

RewriteLogという指令を使用することはできません。 mod_rewrite documentationを参照してください。また、このような問題に遭遇したときには、エラーログを調べる必要があります。

0

仮想ホスト内に仮想ホストを設定することはできません。使用している

+0

私は上記のコードを.htaccessを使って実行するために何を使用するのですか?linuxから共有server.Forに私のサイトを転送しているので、私は "Document_Root"のために使用しています –

0

<VirtualHost>ブロックはのhttpd.confファイル(メインサーバ設定)内に構成することができ、.htaccessの内部で動作しません。

あなたは.htaccessファイル内のhttpd.conf内のVirtualHostを移動してみてください、ちょうどlevingのRewriteCondとのRewriteRuleができ

+0

.htaccessを使用して、私はLinuxから共有サーバーに自分のサイトを転送しています。たとえば、 "Document_Root"には何を使用していますか? –

0

ServerNameディレクティブは、サーバ名ではなくURLが含まれている必要があります。 www.example.com:80の値に設定すると有効ですが、www.example.com/~exampleは有効ではありません。 Apache mod_coreのドキュメントを参照してください。

それ以外の場合は、エントリがコメントアウトされていても、.htaccessファイルでRewriteLogディレクティブを使用することはできません。 Apache mod_rewriteのマニュアルを参照してください。

2

やあ、

前述したように、VirtualHostディレクティブのコンテキストを明示的に.htaccessファイルでの使用を排除:

のApache 2.2のマニュアルから:

サーバ設定。 ..は、サーバー構成ファイル(httpd.confなど)では使用できますが、任意のコンテナ内では使用できないことを意味します。それは.htaccessファイルではまったく許可されていません。

HTH

歓声、

関連する問題