2011-10-17 163 views
0

我对我LAMP Environment使用CakePHP 1.3我的项目之一,是什么让我震撼忽然约我的网站路径问题的URL:CakePHP的网站路径访问问题

它的未来是这样的:

http://localhost/project/app/webroot/index.php/mydocuments/ 

虽然直到现在它正确地喜欢:

http://localhost/project/mydocuments/ 

但我真的不知道,什么设置改变导致此路径问题。

我有3个默认的.htaccess文件,CakePHP提供的就像我的文件夹结构,一个htaccess文件位于根文件夹(外部应用程序文件夹),一个htaccess文件放入应用程序文件夹,另一个放入app/webroot文件夹中,已经在这里描述的,但仍然是其路径是问题..

回答

3

我假设你使用Apache和Apache的文档根目录是指向您的应用程序/ webroot的文件夹中。

你需要一个.htaccess文件在你的根目录目录,使在Apache这项工作。

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 
</IfModule> 

如果你的Apache文档根是您的应用程序根(不推荐),你需要这样的另一个.htaccess文件在你的应用程序根目录:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^$ webroot/ [L] 
    RewriteRule (.*) webroot/$1 [L] 
</IfModule> 

希望这有助于!

+0

感谢您的答案,但有,我有3页默认的.htaccess在我的文件夹结构的文件,一个在根文件夹(外app文件夹),一个htaccess文件到app文件夹和一个多到应用程序/ Web根目录文件夹中你所描述在这里,但仍然是其路径是问题.. –

1

我第二什么wrdevos在说什么。最重要的是,还请确保您的DocumentRoot的目录指令下(在你的Apache配置)选项的AllowOverride被设置为全部,就像这样:

<Directory "/var/www/html"> 
    AllowOverride All 
    # Other options should follow... 
</Directory> 

在大多数系统则默认为设置AllowOverride无,它不允许.htaccess文件运行。

+0

感谢您的答案,但很好,我的问题是 - 到现在它工作正常,但由于昨日路径已经改变,所以在所有与我的.htaccess文件没有变化..到目前为止,我还没有提及任何.htaccess文件中的allowoverride,我需要提及这一点? –

+0

您确定重写模块仍在运行吗?尝试运行apachectl -t -D DUMP_MODULES并查看rewrite_module是否在概述中。 – Oldskool