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>
我是否缺少傳遞查詢字符串所需的內容?我已經遍尋谷歌,但我能找到的只是基於查詢字符串重定向,而不是確保查詢字符串通過。我以前在nginx服務器上發生過同樣的事情,但我不知道如何在Apache上修復它。
你還可以添加R標誌('[L,QSA,R]'),並檢查你的規則的確切結果是什麼? –
我添加了R標誌,但它沒有任何區別,查詢字符串仍然消失,我用一個只支持查詢字符串的一次性PHP腳本對其進行了測試。但是,如果我確實將index.php部分添加到URL中,它就可以正常工作。我在重寫中正在做什麼剝離查詢字符串? – DarthCoder