2016-08-03 4 views
1

URLを書き直してApacheにindex.phpが含まれないようにしようとしています。これまではすべてが正常に動作していましたが、GETリクエストでクエリ文字列パラメータを送信し、それらが削除されていることを認識する必要がありました。 QSAフラグを使用していますが、動作していないため、クエリ文字列がサーバーに届かないApacheリライトルールがクエリ文字列を削除します

<VirtualHost noomo.jp:443> 
DocumentRoot /var/www/noomo-web/public 
<Directory "/var/www/noomo-web/public"> 
AllowOverride All 
Options -Multiviews 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php?/$1 [L,QSA] 
</Directory> 
SSLCertificateFile /etc/letsencrypt/live/noomo.jp/fullchain.pem 
SSLCertificateKeyFile /etc/letsencrypt/live/noomo.jp/privkey.pem 
Include /etc/letsencrypt/options-ssl-apache.conf 
ServerName noomo.jp 
</VirtualHost> 

クエリ文字列を渡すために必要なものがありませんか?私はGoogleのすべてを見てきましたが、私が見つけることができるものは、クエリ文字列に基づいてリダイレクトすることだけです。私は前にnginxサーバーでこれと同じことが起こったが、私はApache上でそれを修正する方法を知らない。

+0

Rフラグ( '[L、QSA、R]')を追加して、ルールの正確な結果を確認できますか? –

+0

私はRフラグを追加しても何の違いもなく、クエリ文字列はまだ消えてしまったので、クエリ文字列をエコーし​​たワンオフPHPスクリプトでテストしました。しかし、URLにindex.phpの部分を追加するとうまく動作します。書き直しでクエリー文字列を取り除いて何をしていますか? – DarthCoder

答えて

0

ああ!それを見つけた!さて、私は自分の質問に答えるつもりだ。そうすれば、人々はGoogleに同じ問題が起きれば、これが私に何時間もかかったのではないかと思うだろう...エントリーの中に書き換えを入れることができないか、書き換えルールを外に出してエントリの中に入れて、今すぐ動作させます。

関連する問題