gpt4 book ai didi

php - 从 URL 中删除 index.php 会导致 yii 出现 404

转载 作者:可可西里 更新时间:2023-11-01 00:34:15 27 4
gpt4 key购买 nike

问题

初始问题:您好,我有一个新制作的 Yii 站点,我想在其中从 URL 中删除 index.php。
示例:“/index.php/site/index”应该是“/site/index”

我一直在用这个http://www.yiiframework.com/doc/guide/1.1/en/topics.url#hiding-x-23x指导,但我只收到 404。

希望您能指出错误或帮我调试这个问题!
如果我遗漏了任何相关信息,请告诉我。

OBS:“主页”页面按预期工作,其他页面已损坏。

问题状态:似乎是 mod_rewrite.so 的 apache/ubuntu 问题

回答

在不同人的帮助下现在一切正常了 :D 我必须安装“rewrit”才能让它运行,我通过写 运行 a2enmod 重写我的系统的以下配置解决了我的问题,我希望这个帖子能帮助其他人解决类似问题。

我的系统

Server version: Apache/2.2.22 (Ubuntu)  
Server built: Nov 8 2012 21:37:45

Apache httpd.conf

<Directory "/var/www/MY_SITE/FOLDER_CONTAINING_YII/">
AllowOverride All
#...
</Directory>
LoadModule rewrite_module modules/mod_rewrite.so

这是文件的全部内容

Apache 错误日志

File does not exist: /.../htdocs/site, referer: http://.../htdocs/index.php/site/index  

我加了点

重启Apache

kah@webaalborg:/etc/apache2/sites-available$ sudo service apache2 restart
* Restarting web server apache2
[Mon Nov 26 20:16:35 2012] [warn] module rewrite_module is already loaded, skipping
... waiting
[Mon Nov 26 20:16:36 2012] [warn] module rewrite_module is already loaded, skipping
[ OK ]

/ect/apache2/av​​ailable-sites/default

...
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
<Directory /var/www/MY_SITE>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
...

Yii 目录结构:

  • 框架
  • htdocs
    • Assets
    • CSS
    • .htaccess
    • index.php
    • index-test.php
    • 主题
  • protected

.htaccess

RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php

main.php 配置文件

'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'caseSensitive'=>false,
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
),

最佳答案

如果你在 Linux(比如 ubuntu)上工作,那么转到路径 /etc/apache2/sites-available/ 在那里你会找到一个名为 default 的文件,

    <Directory /var/www/> <--- ***root directory***
Options Indexes FollowSymLinks MultiViews
AllowOverride all <---- ***change this line***
Order allow,deny
allow from all
</Directory>

我想你的问题会解决的。

谢谢。

关于php - 从 URL 中删除 index.php 会导致 yii 出现 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13542560/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com