2015-01-02 171 views
2

我有一個名爲directory.php的php文件,用戶可以通過修復url directory.php?letter=a&page=2&orderby=name&donotshowthis=this來安排內容......你明白了。 我試圖做的htaccess的一行到所有那些亂七八糟重命名爲東西是更容易閱讀什麼,我想實現的是:htaccess爲php文件重複重命名

directory/letter:a|page:2|orderby:name|donotshowthis:this 

這裏是我的代碼嘗試:它僅適用於一個字符串我怎麼能用|來分隔它並有無限數量的字符串?

RewriteRule ^directory/([a-z]+):(.*)/?$ directory.php?$1=$2 

回答

3

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代碼:

RewriteEngine On 
RewriteBase/

RewriteRule "^(directory)(?:\.php)?/([^:]+):(.*?)(?:\x7c(.*))?$" $1.php/$4?$2=$3 [L,QSA,NC] 

這將路線您輸入URI

example.com/directory/letter:a|page:2|orderby:name|donotshowthis:this 

到:

example.com/directory.php?donotshowthis=this&orderby=name&page=2&letter=a 
+1

對不起和謝謝,它的工作原理,這是一個測試問題。 +1 – Croises

+0

我想補充一點,如果你有php-fpm,這段代碼不起作用!讓我知道如果有人知道爲什麼和可能的解決方案是什麼。 – shnisaka

+0

對不起,我對'php-fpm'不太瞭解。你可能想用'php'標籤發佈一個新問題,這樣你可以得到更好的幫助。 – anubhava