CakePHP网站路径访问问题

发布于 2024-12-09 23:32:04 字数 467 浏览 1 评论 0原文

我在我的一个项目的 LAMP 环境 上使用 CakePHP 1.3,突然我对 URL 的网站路径问题感到震惊:

它是这样的:

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

虽然到目前为止它的正确方式如下:

http://localhost/project/mydocuments/

但我真的不知道,更改了哪些设置会导致此路径问题。

我有 3 个默认的 .htaccess 文件,CakePHP 提供的就像我的文件夹结构一样,一个 htaccess 文件位于根文件夹(应用程序文件夹外部),一个 htaccess 文件位于应用程序文件夹中,另外一个位于 app/webroot 文件夹中,如您在此处所述,但它的路径仍然是问题..

I am using CakePHP 1.3 on my LAMP Environment for one of my project, and what shocked me suddenly about my website path issue for URL:

Its coming like this :

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

While till now it was coming properly like:

http://localhost/project/mydocuments/

But I really don't know, what settings altered to cause this path issue.

I have 3 default .htaccess files which CakePHP provides like my folder structure is, one htaccess file is in root folder (outside app folder), one htaccess file into app folder and one more into app/webroot folder as you've described here, but still its path is the issue..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

望喜 2024-12-16 23:32:04

我假设您使用 Apache 并且您的 Apache docroot 指向您的 app/webroot 文件夹。

您的 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 docroot 是您的应用程序根目录(不推荐),您需要在应用程序根目录中另一个像这样的 .htaccess 文件:

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

希望这会有所帮助!

I am assuming you use Apache and your Apache docroot is points to your app/webroot folder.

You need a .htaccess file in your webroot dir to make this work on Apache.

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

If your Apache docroot is your app root (not recommended) you need another .htaccess file like this in your app root:

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

Hope this helps!

冰雪梦之恋 2024-12-16 23:32:04

我赞同 wrdevos 的说法。最重要的是,还要确保在文档根目录(在 Apache 配置中)的 Directory 指令下,选项 AllowOverride 设置为 All,如下所示:

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

在大多数系统上,它默认为 AllowOverride None,这根本不允许运行 .htaccess 文件。

I second what wrdevos is saying. On top of that, also make sure that under the Directory directive of your documentroot (in your Apache config) the option AllowOverride is set to All, like this:

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

On most systems it defaults to AllowOverride None, which doesn't allow .htaccess files to be run at all.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文