我在嘗試重新構建現有網站,同時將網址重新寫入更加用戶友好的格式。我現在已經是http://example.com/test_vars.php?test_var1=value1&test_var2=value2
,理想的是什麼,我想是http://example.com/test_vars/test_var1/value1/test_var2/value2
刪除PHP擴展並用.htaccess重寫查詢字符串
不可否認,我是新來修改htaccess中,但已經做了我的研究,並嘗試了幾件事情。最接近我來什麼我要找的(當然不是關閉),但我已經封閉的代碼如下:
Options +FollowSymLinks
Options +Indexes
RewriteEngine on
DirectoryIndex index.html
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(([^/]+/)*[^.]+)$ /$1 [L]
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.html
RewriteRule .* index.html
有了這個,我最終的http://example.com/test_vars.php/test_var1/value1/test_var2/value2
一個URL然而,沒有任何變量被傳遞給頁面。
那倒看看我的變量,完美的,但是,我仍然在http://crapaudexhibition.com/test_vars.php/test_var1/value1/test_var2/value2上的.php擴展名 - 任何想法如何我可以擺脫它? – fergusonkw
這很好,但是對於其他頁面是否有更通用的聲明(我只是將test_vars用作測試);我需要在多個頁面和可能的未來頁面上使用它。 – fergusonkw
其實你應該將所有的請求重定向到更多的全局腳本'index.php'而不是一個腳本'test_vars.php'。在'index.php'中,你將從'$ _SERVER ['REQUEST_URI']'得到'/ test_vars/test_var1/value1/test_var2/value2'。解析字符串以獲取「test_vars」部分,並將字符串的其餘部分作爲key =>值對。然後你可以'include_once「test_vars.php」'。 – flowfree