首页 > 解决方案 > Htaccess 通过 $_GET 参数重写 URL

问题描述

我一直在尝试通过在目录中显示 URL 来获得特定的结果。我已经引用了这个这个帖子。我正在开发一个 PHP 项目。目前,我的带参数的 URL 如下:

https://subdomain.example.com/Dir/childDir/?id=12345或者https://subdomain.example.com/Dir/childDir/index.php?id=12345

我正在寻找的结果是 https://subdomain.example.com/Dir/childDir/12345

我可以处理 PHP 中的错误处理(即强制参数,否则重定向),但 Htaccess 总是超出我的想象。目前,这是我的目录的 Htaccess。

RewriteEngine On
RewriteBase /
RewriteRule ^childDir\/([^/]+)(/([^/]+))?$ index.php?method=$1

======================================

编辑:已解决。谢谢@anubhava

RewriteEngine On

# rewrite /Dir/childDir/12345 to /Dir/childDir/index.php?id=12345
RewriteRule ^(\d+)/?$ index.php?id=$1 [L,QSA]

结果: 工作示例

<? echo $_GET['id'] ?>

标签: phpapache.htaccess

解决方案


您可以在您的Dir/childDir/.htaccess:

RewriteEngine On

# rewrite /Dir/childDir/12345 to /Dir/childDir/index.php?id=12345
RewriteRule ^(\w+)/?$ index.php?id=$1 [L,QSA]

推荐阅读