2011-08-17 85 views
1

我已經在我的PHP中安裝了xdebug,並且希望在url字符串中使用?XDEBUG_PROFILE = true執行profiler。但是,當我嘗試使用帶有查詢字符串的mod_rewrite RewriteRule的URL執行此操作時,它不會進行配置文件。例如:爲什麼?mod_rewrite忽略了XDEBUG_PROFILE = true?

RewriteRule ^page/(.*)/last$  page.php?pageid=$1 [L] 

什麼是最好的方式來得到這個工作?

回答

2

您需要添加[QSA]標誌以將任何查詢字符串附加到重寫上。

RewriteRule ^page/(.*)/last$  page.php?pageid=$1 [L,QSA] 

只允許XDEBUG_PROFILE

RewriteCond %{QUERY_STRING} ^XDEBUG_PROFILE 
RewriteRule ^page/(.*)/last$  page.php?pageid=$1&XDEBUG_PROFILE=1 [L] 

# Other requests go through as normal 
RewriteRule ^page/(.*)/last$  page.php?pageid=$1 [L] 
+0

謝謝,但我真的不喜歡它的聲音。這不是說那麼任何人都可以傳遞任何查詢字符串到我的腳本?從而向黑客開放GET變量。 – David

+0

@David然後嘗試我剛剛添加的內容。任何查詢參數都是不允許的,但是'XDEBUG_PROFILE'是。無論如何,你可以在完成分析後刪除'QSA',因爲無論如何你都應該禁用xdebug。 –

+0

@david:沒有什麼能阻止某人在他們的地址欄中輸入「example.com/yourscript?hahah = im_in_url_url&adding = stuffz」。 –