Ich versuche URLs neu zu schreiben, so dass sie nicht die index.php in ihnen in Apache haben. Alles hat bisher gut funktioniert, aber ich musste Querystring-Parameter in einer GET-Anfrage senden und erkannte, dass sie abgezogen wurden. Ich benutze das QSA-Flag, aber es funktioniert nicht und mein Abfrage-String kommt niemals zum Server.Apache Rewrite-Regel löscht Abfrage-String
<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>
Fehle ich etwas, das benötigt wird, um den Query-String zu übergeben? Ich habe überall in Google nachgeschaut, aber alles, was ich finden kann, bezieht sich nur auf das Weiterleiten basierend auf der Abfragezeichenfolge, nicht dafür, dass die Abfragezeichenfolge durchkommt. Ich hatte die gleiche Sache zuvor auf einem Nginx-Server geschehen, aber ich weiß nicht, wie man es auf Apache repariert.
Können Sie R-Flag auch hinzufügen ('[L, QSA, R]') und überprüfen, was das genaue Ergebnis Ihrer Regel ist? –
Ich habe das R-Flag hinzugefügt und es machte keinen Unterschied, die Abfragezeichenfolge ist immer noch nicht vorhanden und ich habe es mit einem einmaligen PHP-Skript getestet, das nur die Abfragezeichenfolge widergibt. Wenn ich jedoch den index.php Teil zur URL hinzufüge, funktioniert es gut. Was mache ich in meinem Neuschreiben, das streicht die Abfragezeichenfolge? – DarthCoder