RewriteRule返回内部服务器错误

时间:2015-06-26 18:19:29

标签: php apache .htaccess url-rewriting

我正试图了解重写规则。我已经使用了一些生成器和指南来尝试理解它是如何工作的,我得到的代码如下:

Options +FollowSymLinks
RewriteEngine on
RewriteRule view_image/img/(.*)/ view_image.php?img=$1
RewriteRule view_image/img/(.*) view_image.php?img=$1

我正在尝试重新指导: http://www.danielfew.uk/projects/file_upload/view_image.php?img=food-q-c-1920-1080-2.jpg

http://www.danielfew.uk/projects/file_upload/view_image/img/food-q-c-1920-1080-2.jpg/

甚至更好,重定向: http://www.danielfew.uk/projects/file_upload/view_image.php?img= {图像名称}

http://www.danielfew.uk/img/ {图像名称}

或者那就是发电机所说的......但每次我转到那个页面时都会出现内部服务器错误。

有人可以帮我理解重写网址的工作原理吗?

我暂时删除了.htaccess的内容,因此您可以在不收到内部服务器错误的情况下查看该页面。

1 个答案:

答案 0 :(得分:1)

所以我认为这是你的解决方案,

RewriteEngine On    # Turn on the rewriting engine
RewriteRule    ^img/([0-9]+)/?$    view_image.php?img=$1    [NC,L]    # Handle product requests

你喜欢这样:http://www.danielfew.uk/projects/file_upload/view_image/img/ {number} /

注意:您不能在此使用名称,因为此代码不支持名称,只有id = {number} ok

以下是我的测试网站的演示,这是我的.htaccess代码

RewriteEngine On    # Turn on the rewriting engine
RewriteRule    ^DanielFew/([0-9]+)/?$    index.php?id=$1    [NC,L]    # Handle product requests

我的链接是:http://test.softbazz.com/danielfew/danielfew/3/ 通过更改ID号,您可以看到更改。 danielfew/{id=number}/