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,我曾经有过这样的结构: mysite(根目录) 列兵 L login.php L logout.php L分贝 L manage_db.php L one-client.com L other-client.com 上传 L公众 L资产等。 但现在情况变了: mysite(根目录) 列兵 L应用程序核心(新文件夹) L login.php L logout.php L分贝 L manage_db.php L one-client.com L other-client.com 上传 L公众 L资

我曾经有过这样的结构:

mysite(根目录)
列兵
L login.php
L logout.php
L分贝
L manage_db.php
L one-client.com
L other-client.com
上传
L公众
L资产等。

但现在情况变了:

mysite(根目录)
列兵
L应用程序核心(新文件夹)
L login.php
L logout.php
L分贝
L manage_db.php
L one-client.com
L other-client.com
上传
L公众
L资产等。

我需要的是重写URL,以便能够从
mysite.com/private/login
而不是
mysite.com/private/app core/login
访问登录文件。我尝试过这个,但不起作用:

重写规则^private/app core/(.*)$/private/$1[L,NC,R=302]

这是您的规则:

RewriteRule ^private/app-core/(.*)$ /private/$1 [L,NC,R=302]
这条规则实际上是相反的。对于一组给定的URL,您可以使用此规则将旧的
/private/login
URL更改为介于
/app core
之间的新URL:

RewriteRule ^private/(?!app-core|one-client\.com|uploads)(.*)$ /private/app-core/$1 [NC,L]
这将实现正确的重定向

(?!app core)
是负前瞻的,这意味着在
/private/


请确保在测试之前清除浏览器缓存。

@anubhava是的,它们都指向以前的路径。我尝试了
重写规则^private/(.*)$/private/app core/$1[L,NC,R=302]
,但仍然无法工作。抛出404错误。感谢您的回复,但未按预期工作。当我访问
mysite.com/private/
时,服务器会将我重定向到
mysite.com/private/app core/
。是的,但没有工作。现在我正在使用它,并按预期工作:
RewriteRule^private/(?!app core)(.*)$/private/app core/$1[QSA,L]
。不,我想重写URL。现在我有其他问题。使用此规则:
RewriteRule^private/(?!app core)(.*)$/private/app core/$1[QSA,NC,L]
此URL不起作用:
mysite.com/private/one client.com
两者都不是
mysite.com/private/other client.com
。没有规则,但是
/app core/
目录不起作用(这意味着,例如
mysite.com/private/login
没有从
mysite.com/private/app core/login
获取资源)。是的,它必须是特定的。我们可以通过排除一些已知路径或包括一些已知路径来获得它。不管什么是短名单,就这样做吧。如果只有3个文件夹被排除在外,一个client.com,另一个client.com,uploads,那么我们可以有一个排除规则。