使用.htaccess重写URL以获取2个参数

时间:2016-02-12 22:58:36

标签: .htaccess rewrite

如何转换来自的网址:
http://example.com/site/delete-page.php?site=first&page=second

要:
http://example.com/site/first/delete-page/second

谢谢!

1 个答案:

答案 0 :(得分:3)

这是该特定任务的正常规则:

RewriteEngine on
RewriteRule ^/site/([^/]+)/delete-page/(.+)$ /site/delete-page.php?site=$1&page=$2 [L]

要在.htaccess样式文件中使用相同的规则,您必须稍微修改它:从模式和目标中删除前导斜杠(/):

RewriteEngine on
RewriteRule ^site/([^/]+)/delete-page/(.+)$ site/delete-page.php?site=$1&page=$2 [L]

这假定.htaccess样式文件位于包含site文件夹的文件夹内。您也可以将文件放在site文件夹中,然后显然您必须从规则模式和目标中删除site/部分。此外,您必须注意为该主机和位置启用.htaccess样式文件的解释。

通常,您应该始终更喜欢第一个版本,并将此类规则放在http服务器主机配置中。 .htaccess样式文件非常容易出错,难以调试,而且真的会降低服务器速度。它们仅作为您无权访问服务器配置的情况的最后选项提供。例如,当使用非常便宜的共享Web托管服务时......