【问题标题】:After rewrite URL how to catch GET value in php重写 URL 后如何在 php 中捕获 GET 值
【发布时间】:2020-10-26 05:45:21
【问题描述】:

我将变量 id 从 index.php 页面传递到 load.php 页面,在 load.php 页面上我想用 GET[id] 捕获 id 变量;

index.php

<a href="load?id=1">Click Here</a>

加载.php

echo $_GET['id'];

.htaccess 文件

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*)$ $1.php [L] 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /healthgrace/load/?\?id=([^&\ ]+)&?([^\ ]*)
RewriteRule ^ /healthgrace/load/%1?%2 [R=301,L]

当我在加载页面上捕获 id 时,它会显示 500 internal Server Error。

【问题讨论】:

    标签: php regex .htaccess url url-rewriting


    【解决方案1】:

    301 规则中使用更正的正则表达式:

    RewriteEngine On 
    
    RewriteCond %{THE_REQUEST} \s/+(healthgrace/load)/?\?id=([^&\s]+) [NC]
    RewriteRule ^ /%1/%2? [R=301,L]
    
    RewriteCond %{REQUEST_URI} ^(/healthgrace/load)/([\w-]+)/?$ [NC]
    RewriteRule ^ %1.php?id=%2 [L,QSA]
    
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME}.php -f 
    RewriteRule ^(.+?)/?$ $1.php [L]
    

    【讨论】:

      猜你喜欢
      • 2017-05-10
      • 2021-12-18
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      • 1970-01-01
      • 2011-05-07
      • 2012-02-04
      • 1970-01-01
      相关资源
      最近更新 更多