Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess yii、mamp、htaccess重写URL_.htaccess_Mod Rewrite_Yii_Rewrite_Mamp - Fatal编程技术网

.htaccess yii、mamp、htaccess重写URL

.htaccess yii、mamp、htaccess重写URL,.htaccess,mod-rewrite,yii,rewrite,mamp,.htaccess,Mod Rewrite,Yii,Rewrite,Mamp,我试图重写yii网址,但没有运气。我花了数小时浏览网站,每次都得出了同样的答案,但这对我来说并不适用: 我想将URL解析为基本路径,例如 /index.php/site/index 到 / /index.php/ads和/index.php/ads/ 到 /广告 /广告/详情?广告=9 到 /广告/9 问题似乎是.htaccess无效 我正在使用: mamp专业版 和狮子在mac上 而且web目录与web服务器根目录不同。 我已通过控制台设置了AllowOveride htaccess与mai

我试图重写yii网址,但没有运气。我花了数小时浏览网站,每次都得出了同样的答案,但这对我来说并不适用:

我想将URL解析为基本路径,例如

/index.php/site/index 到 /

/index.php/ads和/index.php/ads/ 到 /广告

/广告/详情?广告=9 到 /广告/9

问题似乎是.htaccess无效

我正在使用:

mamp专业版 和狮子在mac上 而且web目录与web服务器根目录不同。 我已通过控制台设置了AllowOveride

htaccess与main index.php位于同一文件夹中,但即使我创建了一个错误,它也不会注册

我对使用htaccess文件的其他非yii web目录没有任何问题

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /index.php
//main.php

  'urlManager'=>array(
        'urlFormat'=>'path',
                    'showScriptName'=>false,

        'rules'=>array(

                        '<controller:\w+>/<id:\d+>'=>'<controller>/view',
            '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
            '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
        ),
    ),
'urlManager'=>数组(
“urlFormat'=>“路径”,
'showScriptName'=>false,
'规则'=>数组(
“/”=>“/视图”,
'//'=>'/',
'/'=>'/',
),
),

我有一个项目,其中我的Yii应用程序也位于子文件夹中

这是我的.htaccess文件:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php/$1 [L,QSA]
然后在main.php中,需要将以下行添加到“rules”数组中:

'' => 'site/index', // This is for the home page
ads是您控制器的名称吗?换句话说,控制器文件夹中是否有名为AdsController.php的文件?如果是这样,那么它将默认工作

只是好奇为什么要直接点击index.php?您应该能够将localhost设置为直接指向Yii应用程序文件夹。例如,在我的机器上,我创建了http://mytestapp/,它指向htdocs中的应用程序文件夹

由于您在Mac电脑上,因此还需要编辑您的etc/hosts文件

我添加了这样一行: 127.0.0.1 mytestapp


希望这对……有帮助。

谢谢,它很有效!似乎问题出在“=>”站点/索引上。实际上,我已经将其设置为http://mytestapp/编辑此文件的时间太长。谢谢,它在某种程度上起作用。index.php/ads仍然与/ads一样解析。有没有办法阻止这种情况?和工作,但解析为不工作的服务器地址。现在来看一下,如果URL不能与index.php一起工作……那么,当您访问Yii框架网站时,它也是这样工作的()。我想你可以写一些东西,将它从URL中剥离并重定向,但我看不出目的。。。还有,你最后一句话有问题吗?目前,这没有多大意义:)只是担心重复内容。因为如果可能的话,我总是喜欢一个url而不是一个页面。最后一部分是yii.dev:8888/ads/seller重定向到yii.dev的问题,因此出于某种原因,您给出的代码不喜欢yii.dev:8888/ads/seller,但yii.dev:8888/index.php/ads/seller有效。至于重复内容,只需确保URL路径中的所有链接都没有index.php。对于另一个问题,也许您可以在配置中添加main.php中的urlManager数组……我有相同类型的设置,我的任何页面(包括重定向页面)都不需要在路径中包含index.php。顺便说一句,最好不要使用.htaccess。当你有一个.git文件夹,或.netbeans或任何东西时,它让人们“看到”一些东西。。。当然,你不应该有这样的东西。但是我现在正在尝试:RewriteCond%{REQUEST\u URI}!上的RewriteEngine。(jpg | png | css | js | php | ico | txt)$RewriteRule/php[L](a.htaccess,有3行)