8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png
关于提问免费主机后缀?i=1参考代码,不一定能成功
admin 8月前

作为参考代码,需自己修改,不一定能成功


参考说明1:

如何隐藏使用.htaccess从URL获取参数?我不想改变GET到POST但我比较喜欢添加.htaccess到其中的页面位于从如何通过在目录中添加.htacess来隐藏URL中的参数

我想这个网址隐藏参数,一个名为XXX,但它不会改变任何东西

RewriteEngine on 
RewriteRule ts125/xxx/(.*) imdetail.php?sid=$1 
RewriteRule ts125/xxx/(.*) imdetail.php?sid=$1=$1 
RewriteRule ts125/xxx/(.*) imdetail.php?sid=$1 

 

隐藏'.php'后面的所有参数,我想这样显示'www.example.com/ts125/xxx/imdetail.php

 

您的htaccess位于/ xxx文件夹中吗?

您可以使用下面的规则/ts125/xxx/.htaccess

RewriteEngine on 
RewriteBase /ts125/xxx 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ imdetail.php?sid=$1 [NC,L] 


这将内部重定向

site.com/ts125/xxx/foobar

site.com/ts125/xxx/imdetail.php?sid=foobar

 

参考说明2:

利用.htaccess隐藏html和php后缀

假设有个网页http://www.example.com/index.html或者http://www.example.com/index.php。如果我们想要隐藏.html后缀或者.php后缀,那么就可以利用到.htaccess文件。由于Apache和Nginx的.htaccess语法不同,这里提供2种方法。
首先新建名为.htaccess文件,windows下新建方法为输入.htaccess.就会变成.htaccess。

一、Apache
1. 隐藏.html后缀
在.htaccess文件输入如下语句:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]


2. 隐藏.php后缀
在.htaccess文件输入如下语句:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]


二、Nginx
1. 隐藏.html后缀
在.htaccess文件输入如下语句:

if (!-f $request_filename){
set $rule_0 1$rule_0;
}
if ($rule_0 = "1"){
rewrite ^/([^\.]+)$ /$1.html last;
}


2. 隐藏.php后缀
在.htaccess文件输入如下语句:

if (!-f $request_filename){
set $rule_0 1$rule_0;
}
if ($rule_0 = "1"){
rewrite ^/([^\.]+)$ /$1.php last;
}

 

参考说明3

如何在url中隐藏参数,但将其发送到隐藏的页面,在地址栏中不可见

示例:

我有这个:

http://localhost/index.php?sent=true

我要:

http://localhost/index.php

您只需设置它,以便如果您在?sent=true脚本完成后访问它,它就会重定向用户。

例如:

if(!empty($_GET['sent'])&&$_GET['sent']) {
    //do stuff
    header("Location: http://localhost/index.php");
}

您不能使用htaccess执行此操作,因为您需要传递给PHP,它是在重定向之后传递给PHP的,因此如果使用htaccess重定向,则值将永远不会到达PHP。

进一步的问题是,这样做的唯一方法是用javascript表单重定向用户。

<?php if(!empty($_GET['sent'])&&$_GET['sent']) { ?>
<form action='http://localhost/index.php' method='post' name='frm'>
    <?php
    foreach ($_GET as $a => $b) {
        echo "<input type='hidden' name='".$a."' value='".$b."'>";
    }
    ?>
    </form>
    <script language="JavaScript">
        document.frm.submit();
    </script>
<?php } ?>

您可以在apache中分配变量:

 

SetEnvIf Request_URI "\sent=true$" SENT=1

然后在PHP中检索它,如:

if (isset($_SERVER['SENT'])) {
   echo "Received sent variable from apache, value is " . $_SERVER['SENT'];
} else {
   echo "not received sent variable from apache";
}

更新

您需要将AllowOverride FileInfoAllowOverride ALL设置在httpd.conf文件或.htaccess文件中,如下面的示例所示:

<Directory /home>
 AllowOverride FileInfo
</Directory>
最新回复 (2)
返回