繁体   English   中英

Apache mod_rewrite:将路径重写为现有文件的查询字符串

[英]Apache mod_rewrite: rewrite a path into a query string of an existing file

我正在用PHP为自己创建一个简单的重定向工具。 我将把映射到其各自URL的代码存储在关联数组中,然后将输入此代码的任何人重定向到其URL。

我正在使用查询字符串获取输入(变量的名称和值,即代码),并且我已经知道如何使重定向部分与PHP一起使用。 问题是,我不想让用户输入问号,变量名和等号。 我希望他们简单地输入将转换为查询字符串的路径,以便PHP可以处理重定向。

我想知道如何将路径(任意URL路径)转换为现有文件的查询字符串。 我能够在Stack Overflow( .htaccess-重写查询字符串并重定向到目录 )上很容易地找到相反的任务,但是我希望能够将任何任意URL路径(该目录中不存在)传递到现有文件的请求参数。 我找到了想要的示例( URL重写以将路径转换为querystring ),但是它用于多个查询字符串,在这种情况下,我只需要一个。 我认为我引用的最后一个问题也未成功回答。

我该如何重定向

https://www.example.com/r/blahblahblah

进入

https://www.example.com/r/index.php?r=blahblahblah

使用.htaccess,以便我可以解析PHP文件中的查询字符串?

像这样:

RewriteRule ^(.*)$ index.php?r=$1 [NC,L,QSA]

在此URL上:

example.com/r/blahblahblah

从index.php:

print_r($_GET);

将返回此:

Array ( [r] => blahblahblah )

(编辑提到这假设.htaccess在/ r目录中)

RewriteEngine On
RewriteRule ^r/([a-zA-Z0-9]+)$ /r/index.php?r=$1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM