用 .htaccess 为 2 个参数重写 URL
Rewrite URL with .htaccess for 2 parameters
如何将 URL 转换为:
http://example.com/site/delete-page.php?site=first&page=second
收件人:
http://例子.com/site/first/delete-page/second
谢谢!
这是该特定任务的正常规则:
RewriteEngine on
RewriteRule ^/site/([^/]+)/delete-page/(.+)$ /site/delete-page.php?site=&page= [L]
要在 .htaccess
样式文件中使用相同的规则,您必须稍微修改它:从模式和目标中删除前导斜杠 (/
):
RewriteEngine on
RewriteRule ^site/([^/]+)/delete-page/(.+)$ site/delete-page.php?site=&page= [L]
这假定 .htaccess
样式文件位于包含 site
文件夹的文件夹内。您也可以将文件放在 site
文件夹中,显然您必须从规则模式和目标中删除 site/
部分。此外,您还必须注意为该主机和位置完全启用 .htaccess
样式文件的解释。
一般来说,您应该总是喜欢第一个版本,并将此类规则放在您的 http 服务器主机配置中。 .htaccess
样式文件是出了名的容易出错,难以调试,而且它们 确实 减慢了服务器速度。它们仅在您无权访问服务器配置的情况下作为最后的选择提供。例如,当使用非常便宜的共享网络托管服务时...
如何将 URL 转换为:
http://example.com/site/delete-page.php?site=first&page=second
收件人:
http://例子.com/site/first/delete-page/second
谢谢!
这是该特定任务的正常规则:
RewriteEngine on
RewriteRule ^/site/([^/]+)/delete-page/(.+)$ /site/delete-page.php?site=&page= [L]
要在 .htaccess
样式文件中使用相同的规则,您必须稍微修改它:从模式和目标中删除前导斜杠 (/
):
RewriteEngine on
RewriteRule ^site/([^/]+)/delete-page/(.+)$ site/delete-page.php?site=&page= [L]
这假定 .htaccess
样式文件位于包含 site
文件夹的文件夹内。您也可以将文件放在 site
文件夹中,显然您必须从规则模式和目标中删除 site/
部分。此外,您还必须注意为该主机和位置完全启用 .htaccess
样式文件的解释。
一般来说,您应该总是喜欢第一个版本,并将此类规则放在您的 http 服务器主机配置中。 .htaccess
样式文件是出了名的容易出错,难以调试,而且它们 确实 减慢了服务器速度。它们仅在您无权访问服务器配置的情况下作为最后的选择提供。例如,当使用非常便宜的共享网络托管服务时...