0
本質上,我的問題是這樣的;我有一個MVC系統,將所有請求重定向到我的網站上的index.php。我在我的htaccess的文件重寫規則來處理,像這樣的請求:htaccess問題GET表單變量在重寫的url中
RewriteRule ^([a-zAZ\_\-]+)\/([a-zA-Z\_\-]+)\/([^\/?]*) /?module=$1&class=$2&event=$3
它轉換的網址爲這些類型的網址
的http://example.com/users/login/
http://example.com/users/info/me
我的問題是,我也希望得到應用變量在URL中使用像這樣
http://example.com/users/login/?var1=val1&var2=val2
http://example.com/users/info/me?var1=val2...
我已經寫了在我的工作臺(快報)很好地工作兩個不同的正則表達式,我已經在PHP他們測試了但他們拒絕WOR k在htaccess中。他們並不特別複雜,我已經嘗試過:
^([a-zAZ_\-]+)\/([a-zA-Z_\-]+)\/([^\/\?]*)[\?]*(.*) /?module=$1&class=$2&event=$3&$4
and
^([a-zAZ_\-]+)\/([a-zA-Z_\-]+)\/([^\/\?]*)(?(?=\?)\?(.+)) /?module=$1&class=$2&event=$3&$4
這些都沒有工作,我絞盡腦汁爲什麼。從本質上講,它只是不承認第四組,並沒有返回任何我認爲它可能是由於它旁邊的&符號,但我作爲一個測試var = $ 4,它仍然下跌。
任何幫助,這將不勝感激,因爲這是讓我瘋了。
由於提前, 魯珀特S.
嗨感謝您的回答,但問題仍然存在,額外的GET變量並不在範圍內出現。我錯過了[DC]位。這是我正在做的一個內部重定向,我有一個可行的設置,但不允許您爲其添加「額外」獲取變量。 RewriteRule ^([a-zAZ _ \ - ] +)\ /([a-zA-Z _ \ - ] +)\ /([^ \ /] *)/?module = $ 1&class = $ 2&event = $ 3 [NC ]是原來的。我希望能夠添加'即時'變數,以特定的呼叫,即example.com/forum/thread/?showPostNumber=1&threadId=123 其中論壇是模塊和線程是類,但添加的變量與模塊 – 2011-06-09 13:47:13
爲什麼你想讓模塊,類等參數可見?這種方式要複雜得多。 [QSA]標誌允許您將附加查詢字符串附加到重寫的url,但是我在回答中寫的內容不會用get參數重寫任何內容。 – aorcsik 2011-06-09 13:53:17
我不希望模塊類和事件參數可見,我希望每個其他GET var都可見,我希望它能像我在網址欄中顯示的例子那樣顯示爲 /forum/thread /和將 /?模塊=論壇暨類=線程內部 和 /論壇/線程/?的threadId = 123&showpostHeader = 1是 /?模塊=論壇暨類=絲線的threadId = 123&showpostHeader = 1內部 我想具體到該模塊是變量像常規GET變量一樣可見 – 2011-06-09 14:03:34