我想轉換此:URL重寫返回500內部服務器錯誤
site/read.php?id=6
到
site/read/6
我已經試過一對夫婦SO找到解決方案,與上次一個(輸出:site/read/id/6
): RewriteRule ^(.*?\.php)/([^/]*)/([^/]*)(/.+)? $1$4?$2=$3 [NC,N,QSA]
當我嘗試第二個鏈接時,它會掛起,並且apache崩潰(LOL)。
不知道是否有.htaccess文件的剩餘部分的問題,所以這裏是全碼:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
RewriteRule ^(.*?\.php)/([^/]*)/([^/]*)(/.+)? $1$4?$2=$3 [NC,N,QSA]
我可以實現(與行1-4),沒有PHP擴展顯示因此地址欄目前顯示爲site/read?id=6
請問您能指出我哪裏出錯了嗎?
這就是所謂的URL路由。我認爲這樣做的最好也是最簡單的方法是使用一些框架,比如'Codeigniter'或'Laravel'。但是你可以自己動手,不用任何帶有一點搜索的框架:http://blogs.shephertz.com/2014/05/21/how-to-implement-url-routing-in-php/ – Sky 2014-09-28 22:13:04