2013-11-23 55 views
0

我有一個配置文件頁面,我使用配置文件GUID作爲QueryString中的id,這意味着它具有所有類型的字符。在htaccess中使用RewriteRule傳遞QueryString

我目前使用的:?

配置文件ID = 347692ca-47a8-11e3-bea0-782bcb3e3838

我希望它是:

資料/ 347692ca-47a8-11e3- bea0-782bcb3e3838

我試過,但沒有奏效:

重寫規則^資料/([^ /] *)$ profile.php?ID = $ 1 [L,QSA]

可以請你幫忙......

.....

感謝

Jassim

+0

你有什麼錯誤?你有404嗎?你有.htaccess和mod_rewrite啓用? – anubhava

+0

這可能是一個問題,因爲您正在使用'.htaccess'樣式文件進行重寫。這使得規則更加複雜。如果可能,請始終使用真實的http服務器配置。 '.htaccess'風格的文件只是最後一招,只有在有真正原因的情況下才能使用。他們放慢了一切,很難調試。 – arkascha

+1

你是什麼意思「它沒有工作」?請在您的問題中添加更多信息。 – arkascha

回答

0

你可以試試這個:在/.htaccess(在Debian/Apache2的測試):

RewriteEngine On 

RewriteCond %{REQUEST_URI} !\.php$ [NC] 
RewriteCond %{QUERY_STRING} (^|&)id=([^&]*) [NC] 
RewriteRule ^profile/?([^/]*)$ /profile.php [L,QSA] 

RewriteCond %{REQUEST_URI} !\.php$ [NC] 
RewriteRule ^profile/?([^/]*)$ /profile.php?id=$1 [L,QSA] 

斜槓/前綴是必需的。

+0

同樣的問題。它在我的本地主機上工作,但是當我將其上傳到主機時,它將無法工作。用id =和這裏檢查它。 http://www.xoompage.com/profile?id=347692ca-47a8-11e3-bea0-782bcb3e3838我的.htaccess有選項所有 - 索引和RewriteEngine On和RewriteCond%{SCRIPT_FILENAME}!-d和RewriteCond%{SCRIPT_FILENAME}! -F –