配置 PhpStorm 使用 .htaccess

8

我在项目的根目录中添加了.htaccess文件(用于重写URL),但它并没有起作用。我检查了两次,同样的文件在Eclipse中正常工作。

我该如何配置PhpStorm来使用.htaccess?


1
你的意思是什么?你希望PHPStorm对这个文件做什么? - Pekka
假设在根目录下有一个名为 tmp.php 的文件,然后我在 .htaccess 文件中编写了一个重写规则:RewriteRule ^tmp/?$ tmp.php。当我输入 http://localhost/mysite/tmp 时,它没有重定向到 http://localhost/mysite/tmp.php,而是抛出了 404 错误。 - Cody
你是在浏览器中输入那个where的?我不确定IDE如何参与其中? - Pekka
是Apache负责处理.htaccess,而不是PHP。 在您的虚拟主机中添加AllowOverride All。 - towr
1
叹气 你在哪里输入URL?在哪个程序中?这可能与IDE无关。 - Pekka
显示剩余3条评论
2个回答

3
  1. 事实上,PHP内置的Web服务器永远不会完全支持.htaccess功能注意:这是PHP的问题,而不是PHPStorm的内置服务器。

但是有一个解决方法。

  1. 大多数情况下,重写只需要将所有非静态文件查询重定向到index.php。如果只需要这个功能,您可以在PHPStorm运行配置中设置服务器的“路由器脚本”index.php

  2. 之后,在index.php中进行一些简单的修改以从驱动器中提供静态文件可能会加快速度。

index.php的开头添加:

if (preg_match('/\.(?:php|png|jpg|jpeg|gif|ico|css|js)\??.*$/',
    $_SERVER["REQUEST_URI"])) 
{
    return false; // serve the requested resource as-is.
}

1

你在使用PhpStorm和Eclipse时是否使用相同的服务器/配置?

正如评论中所述,这与IDE无关,而与Web服务器(Apache)及其配置有关。

如果此虚拟主机/目录配置具有AllowOverride All,ModRewrite已启用且重写规则正确,则可以使用任何编辑器编辑.htaccess,它将正常工作。

您需要确保从正确配置的Web服务器提供您的PHP文件。


我正在使用PHP内置的Web服务器,我尝试使用htaccess更改我的默认索引文件,但它不起作用。 - Khaled AbuShqear
2
@Shqear 内置的 Web 服务器不支持 .htaccess. - CrazyCoder
@CrazeCoder 没错,我刚弄明白了,所以我使用了 PHP 路由脚本,就像 Victor 的帖子中描述的那样。 - Khaled AbuShqear

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接