2011-10-21 8 views
0

をトリガしないだから、私はは/ var/www /のサイトに.htaccessの

RewriteEngine on 
RewriteRule ^([^/]+)/?$ parser.php?id=$1 [QSA,L] 

を次の.htaccessを持っている私は私のバーチャルホストでオーバーライドを許可されています

<Directory /> 
       Options FollowSymLinks 
       AllowOverride All 
     </Directory> 
     <Directory /var/www/site> 
       Options Indexes FollowSymLinks MultiViews 
       AllowOverride All 
       Order allow,deny 
       allow from all 
     </Directory> 

     ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 
     <Directory "/usr/lib/cgi-bin"> 
       AllowOverride None 
       Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
       Order allow,deny 
       Allow from all 
     </Directory> 

UPDATE:今すぐ 私はそれがうまく動作するようにしましたが、site.comにアクセスすると、私はこのparser.phpにリダイレクトされます。 私のホームページはindex.phpにリダイレクトする必要があります。mysite/NASKDjを実行すると、parser.php?pid = NASKDjにリダイレクトされます。これをどうやって解決するのですか?

+0

権限.htaccessファイルでOKですか?他の.htacessファイルは同じWebサーバー上で動作しますか? – Tim

+0

これはかなり開いた 'RewriteRule'です。あなたが*すべて*と一致させることを意図していない限り、私はそれをもっと厳しくすることを提案します。 –

+0

上記の私のアップデートを参照してください、私はいくつかの情報を見逃しています – adit

答えて

2

'/ var/www/site'ディレクトリに 'AllowOverride None'があります。これは、 '/'ディレクトリで指定されたディレクトリよりも優先されます。あなたのサイトが/ var/www/siteにある場合は、This one to Allを変更する必要があります。

+0

上記の私の更新を参照してください – adit

+0

を追加してください:RewriteEngineステートメントの後に "RewriteBase /"。 –

+0

いいえ、それはまだ私のwww.site.comを書き換えます – adit

0

<Directory /var/www/site>...</Directory>AllowOverride Noneが表示されました。