2016-08-03 86 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> 

我是否缺少傳遞查詢字符串所需的內容?我已經遍尋谷歌,但我能找到的只是基於查詢字符串重定向,而不是確保查詢字符串通過。我以前在nginx服務器上發生過同樣的事情,但我不知道如何在Apache上修復它。

+0

你還可以添加R標誌('[L,QSA,R]'),並檢查你的規則的確切結果是什麼? –

+0

我添加了R標誌,但它沒有任何區別,查詢字符串仍然消失,我用一個只支持查詢字符串的一次性PHP腳本對其進行了測試。但是,如果我確實將index.php部分添加到URL中,它就可以正常工作。我在重寫中正在做什麼剝離查詢字符串? – DarthCoder

回答

0

啊!找到了!好吧,我要回答我自己的問題,以便讓人們看到這一點,如果他們谷歌同樣的問題,因爲這使我花了幾個小時才意識到......顯然你不能在條目內重寫或他們不會正確工作。我將重寫規則移出並將它們放在條目中,現在就可以使用。

相關問題