Web服务器上有/ localhost / domains / localhost / myCakephpApp。我无法对文件夹结构做任何事情,但我可以在/ localhost /中编辑.htaccess,现在简化为:
RewriteRule (.*) /domains/localhost/$1 [L]
我在localhost / domains / localhost / myCakephpApp中的网站有标准的蛋糕.htaccess文件:
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
http://localhost/whatever/很有用,但是cakephp中的所有链接(使用html帮助程序)都指向http://localhost/domains/localhost/whatever/并且可以访问。
如何才能使网站仅在http://localhost/而非http://localhost/domains/localhost/上投放?
编辑:
好的,我修改了根目录中的.htaccess(http:// localhost /):
RewriteRule ^$ /domains/localhost/app/webroot/ [L]
RewriteRule (.*) /domains/localhost/app/webroot/$1 [L]
并在http://localhost/domains/localhost/中删除了一个,这意味着只能从http://localhost访问该网址,但链接仍然指向http://localhost/domains/localhost/whatever(e404)
蛋糕的路由中有什么东西像“基本网址”吗?我搜索了很多,但没有任何效果。
答案 0 :(得分:0)
您可以添加重定向路线:
Router::redirect('/domains/myDomainName.com/*', '/');
如果要完全禁用路线,可以重定向到404页面。这样的事情应该有效:
Router::redirect('/domains/myDomainName.com/*', array('controller'=>'pages', 'action'=>'error-404'), array('status' => '404'));
在/View/Pages/error-404.ctp中添加404页。
答案 1 :(得分:0)
问题是CakePHP使用来自服务器的原始uri来解决操作,而不是重写的操作!
在bootstrap.php中尝试这个“hack”:
Configure::write('App.base', '/');
$_SERVER['REQUEST_URI'] = preg_replace('|/domains/localhost|', '', $_SERVER['REQUEST_URI']);