【问题标题】:Rewrite query string special characters to url?将查询字符串特殊字符重写为url?
【发布时间】:2017-07-08 14:39:30
【问题描述】:

我希望我的 PHP 文件通过:mysite.com/?id=ABC123abcmysite.com/ABC123abc

我已经尝试过这段代码,但可能是错误的:

$request = parse_url($_SERVER['REQUEST_URI']);
$path = $request["path"];
$_GET['id'] = $path; //my server returns error 404 - not found

谷歌了一下,没有找到任何东西,如果是重复的问题,对不起。

【问题讨论】:

  • 你可以使用 htaccess 文件
  • 有什么例子吗?
  • 这不是确切的,但会帮助stackoverflow.com/questions/28168375/…
  • 通过:mysite.com/?id=123 到 mysite.com/123 ?比较混乱,能说清楚一点吗?
  • 我的索引php文件使用$_GET['id']获取id值,我希望它被识别为页面格式,mysite.com/123不是/?id=123,明白了吗?

标签: php .htaccess


【解决方案1】:

在你的站点中,你可以使用你项目文件夹下的.htaccess文件(他用来向Apache发出命令),在他里面,放上重写你的URL的代码:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([0-9]+)/?$ index.php?id=$1 [NC,L] 

RewriteEngine 是一种机制,其中每次写入 url,否则请求会被重写,由您指定。
Apache 的文档中,您可以查看更多的 RewriteEngine。

【讨论】:

  • 只有一个问题,我的id查询是这样的:A12ABC1234567
  • 使用 ([0-9a-zA-Z]+) 而不是 ([0-9]+)
  • 好的,我试试看。
  • 我创建了一个数字 id 查询 5 用于测试,仍然返回错误 404。
  • 你已经按照上面的部分创建了一个htaccess ??并且您的主页名称是 index.php 您是否尝试获取 id ??
【解决方案2】:

您可以使用 htaccess 来完成此操作

使用 Htaccess Mod Rewrite 创建 SEO 友好的 URL

例如:http://parthmy007.in/user/123

现在您想使用id 作为参数访问123n 所以为此你必须编写 htaccess 文件

  1. 创建 .htaccess 文件

打开记事本(是的,Windows记事本)>文件>另存为>将“另存为类型”更改为“所有文件”>输入“.htaccess”作为名称,然后按保存。您已经创建了一个 htacces 文件。

  1. 创建自己的重写规则

    重写引擎开启

    RewriteRule ^user/([0-9]+) user.php?id=$1 [NC, L]

【讨论】:

猜你喜欢
  • 2011-10-08
  • 1970-01-01
  • 2011-07-30
  • 1970-01-01
  • 2011-08-02
  • 2012-01-18
  • 1970-01-01
  • 2016-11-17
相关资源
最近更新 更多