2017-08-10 57 views
0

我遇到了.htaccess重寫規則的問題。GET參數和.htaccess - 奇怪的URL

RewriteEngine On 

RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ([a-zA-Z0-9-]+)/(.*)$ /other-app/application/$2&THEME=$1 [L] 

我需要網址:

localhost:8443/other-app/application/nice-url-theme/index.php 
localhost:8443/other-app/application/nice-url-theme/edit.php?edit&EDIT_ID=XX 
localhost:8443/other-app/application/nice-url-theme/brow.php 
localhost:8443/other-app/application/nice-url-theme/brow.phpPARAM1=XX&PARAM2=YY 

如果我得到URL

localhost:8443/other-app/application/nice-url-theme/edit.php?edit&EDIT_ID=XX 

它顯示錯誤404:其他-應用程序/應用/ edit.php & THEME =不錯,網址未找到主題。

參數星問題在哪裏?爲什麼它不能採用GET參數?

+0

這是'.htaccess'在other-app/application /'目錄下嗎? – anubhava

+0

是的,它是正確的目錄。 – ondrusu

回答

1

您可以使用此規則:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ([a-z0-9-]+)/(.*)$ /other-app/application/$2?THEME=$1 [L,NC,QSA] 
  • ?,而不是爲&形成正確的查詢字符串
  • QSA爲保留現有的查詢字符串。
+0

謝謝你的回答。它正在工作,但我需要其他參數(QSA)。例如edit.php?edit&EDIT_ID = 5&THEME = .....你能幫我嗎? – ondrusu

+0

是的,但現在查詢字符串看起來像THEME = XX&編輯&EDIT_ID = 50,我需要將參數THEME移動到查詢字符串結尾。 – ondrusu

+0

查詢字符串中的參數順序無關緊要。當它是一個內部重寫。你的php文件將使用'$ _GET ['THEME']',它將可用。 – anubhava