2015-11-05 55 views
2

我有一個PHP網站,在IIS重寫後用PHP獲取URL參數

http://www.test.com/rewrite-test/s/z2SZhBL

這是以前在Apache上有一個重寫規則,使用$_GET['id']來捕獲「z2SZhBL」。

RewriteEngine on 
RewriteRule ^([^/\.]+)/?$ /index.php?id=$1 [L] 

我需要將此網站移到IIS上,我需要獲取URL重寫規則。我試過這些例子。

http://www.iis.net/learn/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module

所以在文件夾中「改寫測試」我這是呼應了$_GET變量的index.php文件,也沒有回來,他們都是空的GET變量。

我可以使用此解決方法獲取變量。

$params = explode("/", $_SERVER['HTTP_X_ORIGINAL_URL']); 
print_r($params); 

這是最佳解決方案嗎?

+0

你只是問一個意見? – davejal

+1

嗯,我想知道如果這是重寫後檢索變量的正確方法,它感覺就像我所做的可能是一個黑客/變通辦法應該變量不能通過$ _GET獲得,也許我所做的是正確。 – davesherlock

+0

只需將您的.htaccess文件導入到您的URL重寫器。這個嚮導有一個小鏈接。所有相同的規則和技巧都可以使用。 IIS會捕獲並重寫它到'index.php?id = $ 1',這樣你就可以繼續使用'$ _GET'。 – Twisty

回答

0

IIS管理器有一個很好的導入規則工具。查看全部穿行在這裏:http://www.iis.net/learn/extensions/url-rewrite-module/importing-apache-modrewrite-rules

  1. 打開URL重寫
  2. 在操作窗格中,單擊導入規則
  3. 瀏覽到您的.htaccess文件(或者複製/粘貼它們)
  4. 回顧轉換規則
  5. 重命名爲所需
  6. 單擊應用鏈接保存轉換規則的規則
+0

是的,我發現非常有用,謝謝。 – davesherlock

+0

我的問題是關於如何在設置規則後如何獲取變量,此刻我正在使用 $ params = explode(「/」,$ _SERVER ['HTTP_X_ORIGINAL_URL']); – davesherlock

+0

如果規則工作正常,您可以像以前那樣使用'$ _GET ['id']'。兩者都可以工作,就像很多工作來爆炸URL一樣。另外,你還沒有索引你獲得的數據。 – Twisty