子文件夹中的htaccess mod_rewrite URL

时间:2012-11-30 16:51:21

标签: apache .htaccess mod-rewrite

我的问题似乎在StackOverflow上没有答案,所以这里是:

我想使用根文件夹中的 htaccess 文件重写以下网址。

要重写的网址是:

http://www.domain.com/subfolder/item/12345

到此:

http://www.domain.com/subfolder/item.php?id=12345

然而,我似乎没有做任何事情。如果item.php URL位于根文件夹中,我可以使用以下方法成功重写该文件:

RewriteRule ^item/(.*)$ item.php?id=$1 [NC,L]

...但是如果item.php文件在子文件夹中则不行!

2 个答案:

答案 0 :(得分:5)

您可以在子文件夹中使用以下.htaccess:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /subfolder

RewriteRule ^item/(.*)$ item.php?id=$1 [NC,L,QSA]

您的重写网址将变为:http://domain.com/subfolder/item/123

答案 1 :(得分:0)

以下是发送此URL的示例(在浏览器地址栏中输入的URL):

  

http://www.domain.com/subfolder/item/12345(可以是任意数字)这个重写的网址:

     

http://www.domain.com/subfolder/item.php?id=12345

RewriteEngine on
RewriteRule ^subfolder/item/([0-9]+)/?$ subfolder/item.php?id=$1 [L] 

这些指令仅在存在子文件夹目录时才有效,并且在该目录中实际存在文件 item.php