我想转换此: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