当我添加.htaccess时,我无法使用$ _Get

时间:2018-06-13 20:56:40

标签: php .htaccess

我有一个非常棒的网站。我想组织它好一点,所以不要通过在网址中输入来加载每个文件,我只是制作一个索引文件,可以通过get方法包含文件。

$key = $_GET['KEY'];
if ($key == 'signup'){
include "forming/signup.php";
}

为了使网址更清晰,我在.htaccess文件中添加了这个

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

哪个转过来了

  

本地主机:8888 /索引KEY =注册

  

本地主机:8888 /注册

现在唯一的问题是,当我使用$ _GET时,它根本就没有注意到它。我通过重定向(在If语句中编程)注意到它,所以我通过制作文件和使用此代码来测试它

<?php
$test = $_GET['id];
echo "<h1>" . $test . "</h1>";

它没有像预期的那样起作用。

我不知道为什么$ _GET在我使用.htaccess代码后停止工作。 (我是.htaccess的新手)

如果有人能告诉我另一种方法来清理网址并仍然使用$ _GET,我真的很感激。 (或者,如果您在.htaccess中看到任何错误

更新

我想澄清一下。基本上我想要这个

  

本地主机:8888 / index.php的KEY =交和ID = 1

  

本地主机:8888 /后/ 1

(但对于每个帖子,不只是1号)

2 个答案:

答案 0 :(得分:0)

由于PHP是服务器端语言,For testapp1: ng build --prod --base-href /foo/ For testapp2: ng build --prod --base-href /bar/ 仅适用于将请求发送到服务器时URL字符串中的实际内容。如果您纯粹想要更改地址栏中可见的内容以获得更清晰的外观,则需要使用服务器端语言。

幸运的是,您可以使用Javascript server { listen 80 default_server; listen [::]:80 default_server; client_max_body_size 1000M; server_name dev.testurl.org localhost; location /testapp1/ { autoindex on; root /testapp1/dist; try_files $uri $uri/ /foo/index.html; } location /testapp2/ { autoindex on; root /testapp2/dist; try_files $uri $uri/ /bar/index.html; } 执行此操作。 There's an answer here在所有可能的细节中涵盖了它。

答案 1 :(得分:0)

如果您需要我的建议,请按照以下步骤获取最佳网站:)

1 - &gt;首先,在public_html中创建文件夹,将其命名为:“auth”,例如

在此文件夹中,您可以上传“signin.php”,“signup.php”,“forget_password.php”等文件

2 - &gt;在你的htaccess文件中,把它放在:

我已经为你写了这个文件,他准备好了:)

    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            deny from 10.0.0.182
            AddDefaultCharset utf-8
            Options -MultiViews
            Options -Indexes
            DirectoryIndex index.php
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteCond %{REQUEST_FILENAME}.php -f
            RewriteRule ^(.*)$ $1.php
            RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
            RewriteRule ^(.+)\.php$ /$1 [R=301,L]
            #REDIRECTS HERE LIKE REF SYSTEM
            RewriteRule ^ref/(.*)$ auth/signup?ref=$1 [L]
       </IfModule>  
   </IfModule>  

3 - &gt;您现在的链接是:

注意:在参考系统中,您可以从$ _GET ['ref']获取用户名值