.htaccess 从CakePHP应用程序中排除根文件夹
我试图从Cake(根文件夹应用程序)中排除一级目录,因为它应该包含一个不同的应用程序 /保存应用程序 /开发/保存应用程序的测试版本 目录结构: 公用文件夹.htaccess 从CakePHP应用程序中排除根文件夹,.htaccess,cakephp,.htaccess,Cakephp,我试图从Cake(根文件夹应用程序)中排除一级目录,因为它应该包含一个不同的应用程序 /保存应用程序 /开发/保存应用程序的测试版本 目录结构: 公用文件夹 .htaccess [modified] app .htaccess [unmodified] webroot .htaccess [unmodified] index.php [unmodified] ... ... lib Cake ... deve
.htaccess [modified]
app
.htaccess [unmodified]
webroot
.htaccess [unmodified]
index.php [unmodified]
...
...
lib
Cake
...
development
app
webroot
index.php [dumps $_SERVER for test purposes]
因此,我的开发结构中仍然没有应用程序(nor.htaccess),只是为了测试我的root.htaccess是否有效
这是我对root.htaccess的修改:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/development.*
RewriteRule (.*) - [L]
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
重新启动发动机
重写cond%{REQUEST_URI}^/开发*
重写规则(.*)-[L]
重写规则^$app/webroot/[L]
重写规则(*)app/webroot/$1[L]
发生了什么:
/development/显示开发文件夹的apache索引
/development/app/显示应用程序文件夹的apache索引
/development/app/webroot显示根应用程序(不管开发url是否匹配,都会捕获请求)
/development/app/webroot应该显示我的/development/app/webroot/index.php文件,对吗
我到底错过了什么?这是我服务器上的一个奇怪的错误 现在起作用的
.htaccess
结果是:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/development(?:$|/)
RewriteRule ^$ app/webroot/ [L]
RewriteCond %{REQUEST_URI} !^/development(?:$|/)
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
重新启动发动机
重写cond%{REQUEST_URI}^/发展($|/)
重写规则^$app/webroot/[L]
重写cond%{REQUEST_URI}^/发展($|/)
重写规则(*)app/webroot/$1[L]
由于我不知道的原因,如果我使用SSH连接到我的用户帐户并通过命令行编辑.htaccess文件,它将无法工作
当我上传相同的文件(通过SFTP)时,它开始正常工作
我正在CentOS(5.9)上使用cPanel(11.34.1)
另一个示例:如果希望在CakePHP安装上“忽略”多个子文件夹,可以使用以下模式:
<IfModule mod_rewrite.c>
RewriteEngine on
# /development, /version1.5 and /version1.8 directories
# they all hold independent apps
# or completely non-cake-related content
RewriteCond %{REQUEST_URI} !^/(?:development|version1\.5|version1\.8)(?:$|/)
RewriteRule ^$ app/webroot/ [L]
RewriteCond %{REQUEST_URI} !^/(?:development|version1\.5|version1\.8)(?:$|/.*)
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
重新启动发动机
#/development、/version1.5和/version1.8目录
#它们都拥有独立的应用程序
#或完全与蛋糕无关的内容
重写cond%{REQUEST_URI}^/(?:开发|版本1\.5 |版本1\.8)(?:$/)
重写规则^$app/webroot/[L]
重写cond%{REQUEST_URI}^/(?:开发|版本1\.5 |版本1\.8)(?:$/*)
重写规则(*)app/webroot/$1[L]
请注意,这两个
RewriteCond
指令是相同的。创建一个虚拟主机(可能具有不同的端口)来托管您的开发站点不是更容易吗?这个虚拟主机将指向/development/app/webroot。。或者通常是子域,是的。但我需要使用第三方SOAP服务进行测试,该服务使用安装在主服务器上的SSL证书,这就是为什么我需要将其放在子目录中。这也是一个解决共同问题的问题。依我看,任何平台都应该能够轻松地与站点上的其他系统共存,而不是占用根空间。在图案中是用来捕捉实际点的。如果没有\,点表示任何字符。请将此代码片段放在上面,以便以后可以喜欢它。;)