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上でそれを修正する方法を知らない。
Rフラグ( '[L、QSA、R]')を追加して、ルールの正確な結果を確認できますか? –
私はRフラグを追加しても何の違いもなく、クエリ文字列はまだ消えてしまったので、クエリ文字列をエコーしたワンオフPHPスクリプトでテストしました。しかし、URLにindex.phpの部分を追加するとうまく動作します。書き直しでクエリー文字列を取り除いて何をしていますか? – DarthCoder