这是CakePHP的上下文,但我确定它在其他应用程序中很常见。我实现这个页上的说明:.htaccess:多个.htaccess文件如何工作?
http://book.cakephp.org/view/917/Apache-and-mod_rewrite-and-htaccess
答:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
B:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
C:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
在第3,有3 .htaccess文件。为了简单起见,我们称它们为A,B和C.虽然它似乎在我的服务器(localhost XAMPP)上工作,但我不确定是否理解重定向的路径。无论我输入什么地址,它都会按照它的设置始终进入localhost \ cake \ users \ login。
我的应用程序的根目录所在的位置是\ cake。我有\蛋糕,\蛋糕\应用程序和蛋糕\应用程序\ webroot分别与A,B和C,在他们。按照上面的说明,cake \ app中的代码运行,这正是我想要的。在像上面那样正确设置.htaccess文件之前,\ cake中的代码正在运行;这是不正确的,因为它告诉我我的数据库没有设置,你没有这个文件,等等。
有人可以帮助我和“路径”这个应用程序正在之前运行任何PHP文件?是否将所有内容重定向到cake \ app \ webroot,然后重定向到超出.htaccess文件的位置? (在这种情况下,以cake \ users \ login)
谢谢你的帮助!
PS:我很惭愧地说,我还没弄清楚哪个文件的哪一部分重定向到用户登录页面的所有HTTP请求。我刚刚设置了这个,我刚刚回来了。我想我正在CakePHP Cookbook页面上的第二个教程中添加一个ACL功能..
简单的跟踪方法:为每个重写添加一个额外的查询参数:'RewriteRule ...?url = $ 1&from = fileC' –
Marc,是“...”应该是别的吗? – musicliftsme
是的,这是你的重写url的其余部分。只是因为没有削减粘贴整个事情而懒惰。重要的是添加'&from = fileC'查询参数。 –