Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果文件未包含,则重定向_Php_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Php 如果文件未包含,则重定向

Php 如果文件未包含,则重定向,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我试过很多代码,但都不管用。如果PHP不包含该文件,是否有任何方法可以使用htaccess重定向 迄今为止: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/(.*).html index.php?lang=$1&menu=$2 [QSA,L] 因此,当我编写任何/en/introduction.html时,它都会被重写。 但是当有人想要获取我的一个p

我试过很多代码,但都不管用。如果PHP不包含该文件,是否有任何方法可以使用htaccess重定向

迄今为止:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/(.*).html index.php?lang=$1&menu=$2 [QSA,L]
因此,当我编写任何
/en/introduction.html
时,它都会被重写。 但是当有人想要获取我的一个php代码(例如
/menu.php
)时,应该将其重定向到
/index.php


在PHP中,我可以用一个开始的PHP代码来解决这个问题,但我会减慢系统的速度,这就是为什么我需要htaccess。

因此,仅用PHP无法用htaccess解决这个问题。 谢谢大家!

试试这个:

.htaccess

<IfModule mod_rewrite.c>

    Options +FollowSymLinks
    RewriteEngine on

    RewriteBase /

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l

    RewriteRule .* index.php [L]

</IfModule>

现在,在
之后将这一行添加到menu.php,该规则只会重定向
.html
文件。“RewriteRule^(.*)/(.*).html”的意思是:如果url以.html结尾,则执行重写。您也可以对.php执行同样的操作。将html改为(html | php)进行分组“我已经尝试了许多代码”停止猜测,开始阅读和学习…“如果不包含文件,则重定向”需要一种编程语言。htaccess不是专门为它设计的。我知道这意味着什么,它会将所有不存在的
html
文件写入我的
index.php
,加载这些语言,头和身体。在正文部分中,我包含了
menu.php
,它编写
ul
s,以及
li
s从MySQL获取数据。我只想让任何人从
index.php
中查看我的
菜单.php
。如果我重写我的
菜单.php
,它就不能被包括在内,但是如果我没有重写,他们可以在没有页面其他部分的情况下看到它。谢谢,使用
$inscript
定义是否更好?函数在运行时定义命名常量。对于这样的任务,我更喜欢常量而不是变量。如果必须使用变量,然后将其加载到函数中,则必须先使用
global$inscript
,然后才能在函数中使用它。使用常量(可以通过所有脚本全局访问)更容易。
define('_IN_SCRIPT_)', true);
if (!defined('_IN_SCRIPT_') || !_IN_SCRIPT_) {
    exit('Direct access not allowed.');
}