2012-05-31 21 views
0

我正在研究如何構建一個不同的URL,我想知道是否可以替換查詢字符串/問號符號PHP在URL中使用的是'?'變成別的東西?例如感嘆號'!'PHP/Apache - 建立一個不同的URL,可以做到嗎?

www.example.com!foo = 1

這可能嗎?

+1

可能重複的[mod_rewrite:重寫爲「漂亮的網址」?](http://stackoverflow.com/questions/2245831/mod-rewrite-rewrite-to-pretty-url) –

+0

「!」的目的是什麼?假設服務? '?'的目的?如果是這樣,你爲什麼要改變網絡標準? – afuzzyllama

回答

0

當然,但您需要重寫規則來告訴服務器如何提供服務。 PHP不會爲你自動解析它們,所以$ _GET/$ _ POST/$ _ REQUEST變量不會被設置,你必須從$ _SERVER ['REQUEST_URI']自己解析它們。

0

您不必爲此使用mod_rewrite,因爲您仍然可以根據您的配置使用$ _SERVER [「PATH_INFO」]或$ _SERVER [「REQUEST_URI」]解釋網址。把它分開!與explode並解析它與parse_str。這是你的決定,如果這是有道理的。

你應該可以用htaccess替換它,但我無法測試它,因爲我沒有運行atm的apache。必須是這樣的。

RewriteEngine on 
RewriteBase/
RewriteRule ^!(.*)$ http://domain.com/?$1 [R,NC] 

如果這樣工作,從規則中刪除「R」。

+0

謝謝,我也會試試。 – Saiaku

+0

我剛看到。這隻會取代yourdomain.com/!anyinput。也許你會需要這樣的''RewriteRule ^(。*)!(。*)$ http://domain.com/$1?$2 [R,NC]' – Oliver

相關問題