【问题标题】:Friendly URLs cakephp 2.3友好的 URL cakephp 2.3
【发布时间】:2013-03-15 16:16:24
【问题描述】:

我是使用 cakephp 的新手,我正在尝试为我的网站设置友好 URL,但我遇到了问题。

我已经完成了 cakephp 2.3 书中所说的所有步骤,并且我的 apache 配置表明正在执行 mod_rewrite。

当我进入 cake 的主页时,它说没有配置 URL 重写,当我想访问我的 web 时,我需要通过 www.mysite.com/index.php/controller/function当然,我想要这个:www.mysite.com/controller/function,如果我尝试这条路线,它会说在我的服务器中找不到它(并且我已经创建了控制器和函数)。

这是我的 .htacces 文件:

根目录:

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

应用目录:

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

Webroot 目录:

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

【问题讨论】:

  • 这是在本地 M/W/LAMP 服务器上还是在一些付费的网络托管服务器上?如果它是您自己设置的 Apache 安装,那么您可能需要检查配置以确保为虚拟主机设置了 AllowOverride All。但是,如果它是付费托管,那么这可能已经由提供商设置。
  • 它在我自己的 ubuntu 服务器上,我输入了 apache2.conf 文件(因为我在网上看到配置在这里,而不是在 httpd.conf 中)并添加以下行: ' Options FollowSymLinks AllowOverride All # Order deny, allow # Deny from all

标签: php cakephp url-rewriting friendly-url cakephp-2.3


【解决方案1】:

我解决了。在文件 /etc/apache2/sites-enabled/000-default 中,目录指向 /var/www,而我的 cakephp 目录位于 /var/www/html/myapp/cakephp。我改变了它,现在它的工作! :)

【讨论】:

  • 如果您的 web 目录位于 /var/www/html/myapp/cakephp 中,那么如果您在 localhost/html/myapp/cakephp 访问该站点,则 000-default 文件中的 /var/www 将是有效的,但如果您想以 localhost 的身份访问它,那么您需要按照您提到的方式进行更改。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-13
  • 2014-12-12
  • 2011-04-08
  • 1970-01-01
  • 2014-01-14
  • 2011-08-25
相关资源
最近更新 更多