Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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 忽略htaccess重写规则中的文件夹_Php_.htaccess_Redirect_Mod Rewrite - Fatal编程技术网

Php 忽略htaccess重写规则中的文件夹

Php 忽略htaccess重写规则中的文件夹,php,.htaccess,redirect,mod-rewrite,Php,.htaccess,Redirect,Mod Rewrite,我完全不了解htaccess,除了它的“预处理”url的功能,我知道这个问题已经被问了无数次,我几乎尝试了所有这些问题,但没有一个答案对我有效 因此,基本上我有我自己的去创建一个cms和一个结构去配合它。“cms”位于名为system的子文件夹中,它有自己的值得尊敬的index.php 我的htaccess被配置为获取var“page”并从url中收回.php扩展名。在我开始从系统子文件夹调用页面之前,一切正常 我的问题是,如何让htacces忽略此文件夹并继续其重写规则,而不管用户当前位于子文

我完全不了解htaccess,除了它的“预处理”url的功能,我知道这个问题已经被问了无数次,我几乎尝试了所有这些问题,但没有一个答案对我有效

因此,基本上我有我自己的去创建一个cms和一个结构去配合它。“cms”位于名为system的子文件夹中,它有自己的值得尊敬的index.php

我的htaccess被配置为获取var“page”并从url中收回.php扩展名。在我开始从系统子文件夹调用页面之前,一切正常

我的问题是,如何让htacces忽略此文件夹并继续其重写规则,而不管用户当前位于子文件夹中

我的htaccess设置如下:

RewriteEngine On
Options +FollowSymLinks

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

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ index.php?page=$1 [QSA]

<Files .htaccess>
order allow,deny
deny from all
</Files>


ErrorDocument 404 home
ErrorDocument 403 home

#php_flag display_errors off 
重新编写引擎打开
选项+FollowSymLinks
重写cond%{REQUEST_FILENAME}-F
重写规则^([^\\.]+)$$1.php[NC,L]
重写cond%{SCRIPT_FILENAME}-D
重写cond%{SCRIPT_FILENAME}-F
重写规则^(.*)$index.php?页面=$1[QSA]
命令允许,拒绝
全盘否定
错误文档404主页
错误文档403主页
#php_标志显示_错误关闭
让它像这样:

ErrorDocument 404 /home
ErrorDocument 403 /home

RewriteEngine On
Options +FollowSymLinks

# skip subfolder from any rules
RewriteRule ^subfolder(/.*)?$ - [L,NC]

# add .php extension
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^system/(.*)$ system/index.php?page=$1 [L,NC,QSA]

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]

<Files .htaccess>
order allow,deny
deny from all
</Files>
errordocument404/home
错误文档403/主页
重新启动发动机
选项+FollowSymLinks
#从任何规则中跳过子文件夹
重写规则^子文件夹(/.*)-[L,NC]
#add.php扩展
RewriteCond%{REQUEST_FILENAME}.php-f
重写规则^(+?)/?$$1.php[L]
重写cond%{SCRIPT_FILENAME}-D
重写cond%{SCRIPT_FILENAME}-F
重写规则^system/(*)$system/index.php?页面=$1[L,NC,QSA]
重写cond%{SCRIPT_FILENAME}-D
重写cond%{SCRIPT_FILENAME}-F
重写规则^(.*)$index.php?页面=$1[L,QSA]
命令允许,拒绝
全盘否定

谢谢您的回复!它确实有效,但当我尝试进入一个页面时,比如说“系统/博客帖子”,它默认返回到第一个索引,并且不使用子文件夹中的索引。不,它不起作用,我应该把同一个或另一个放在那里吗?我非常抱歉我在度假时迟了回复,它工作得很好,前几天我自己也在搞砸,试图弄清楚如何隐藏.php扩展名,但我想我已经很快弄明白了,非常感谢!很高兴知道它成功了,