我对此感到抱歉,但我的 htdocs root 是错误的,我无法更改它。所以我必须让它在 /public 文件夹中工作。
我使用普通的 Laravel .htaccess 文件进行以下重写:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
如果我打开 http://kemtime2_neu.pr.domain.de/public 我会被重定向到 http://kemtime2_neu.pr.domain.de/public/http://kemtime2_neu.pr.domain.de/public/login
我该如何解决这个问题?
我很想让它在 http://kemtime2_neu.pr.domain.de/ 上工作,但让它在 http://kemtime2_neu.pr.domain.de 上工作/public/ 就可以了。
最佳答案
我使用这篇文章的 3 解决方案并且工作正常:
http://web.archive.org/web/20130320184846/http://forums.laravel.io/viewtopic.php?id=1258
解决方案 1 - 使用符号链接(symbolic link)的备用安装路径。
这是首选解决方案,通常是一个全面的好主意。可以将您的应用程序安装到与 public_html/无关的文件夹,然后将公共(public)文件夹符号链接(symbolic link)到 public_html/路径。
例如:
将您的应用程序安装到/home/applications/mysite.com
假设您的 DocumentRoot 指向/var/www/vhosts/mysite.com/httpdocs
从 mysite.com vhosts 文件夹中删除 httpdocs 文件夹,然后使用符号链接(symbolic link)将两者连接起来:ln -s/home/applications/mysite.com/public/var/www/vhosts/mysite.com/httpdocs
解决方案 2 - .htaccess 与 mod_rewrite
此解决方案使您能够将 Laravel 放入您的公用文件夹,然后使用 .htaccess 文件将请求重定向到公用文件夹。该解决方案将您的应用程序和核心系统代码放置在一个可公开访问的文件夹中。我们不鼓励您使用任何 PHP 框架执行此操作。
第 1 步。将 Laravel 放在您的文档根文件夹中。
第 2 步。将以下 .htaccess 文件放在文档根文件夹中。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
第 3 步。确保您在 application/config/application.php 中手动设置了“url”配置,否则 Laravel 将生成不正确的 URL。确保您的每个环境都具有正确的 application.url 配置。有关特定于环境的配置的更多信息,请参阅:http://laravel.com/docs/install#environments
解决方案 3 - 将公用文件夹合并到安装根目录
此解决方案将您的应用程序和核心系统代码放置在一个可公开访问的文件夹中。我们不鼓励您使用任何 PHP 框架执行此操作。
将 public/文件夹的内容复制到 Laravel 安装文件夹中,然后将 index.php 文件中的这一行更改为:
require '../paths.php';
到
require 'paths.php';
请记住,任何 bundle 、库或其他类型的第三方代码不得设计为可公开访问。
注意:同样重要的是要注意您的 bundles/和 public/bundles/目录现在会发生冲突。使用这种方法时,您可能不想在不知道您的包想要发布什么的情况下不使用 artisan 的 bundle:publish 任务。
关于php - Apache 为 Laravel/public 重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15498513/
我不知道为什么,但是当我设置这个设置时它无法编译设置:static_cache_control,[:public,:max_age=>300]这是我得到的syntaxerror,unexpectedtASSOC,expecting']'(SyntaxError)set:static_cache_control,[:public,:max_age=>300]^我只想将“过期”header设置为css、javaascript和图像文件。谢谢。 最佳答案 我猜您使用的是Ruby1.8.7。Sinatra文档中显示的语法似乎是在Ruby1.
导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵
假设我有一个在Ruby中看起来像这样的哈希:{:ie0=>"Hi",:ex0=>"Hey",:eg0=>"Howdy",:ie1=>"Hello",:ex1=>"Greetings",:eg1=>"Goodday"}有什么好的方法可以将它变成如下内容:{"0"=>{"ie"=>"Hi","ex"=>"Hey","eg"=>"Howdy"},"1"=>{"ie"=>"Hello","ex"=>"Greetings","eg"=>"Goodday"}} 最佳答案 您要求一个好的方法来做到这一点,所以答案是:一种您或同事可以在六个月后理解
在ruby中,你可以这样做:classThingpublicdeff1puts"f1"endprivatedeff2puts"f2"endpublicdeff3puts"f3"endprivatedeff4puts"f4"endend现在f1和f3是公共(public)的,f2和f4是私有(private)的。内部发生了什么,允许您调用一个类方法,然后更改方法定义?我怎样才能实现相同的功能(表面上是创建我自己的java之类的注释)例如...classThingfundeff1puts"hey"endnotfundeff2puts"hey"endendfun和notfun将更改以下函数定
在Ruby类定义中,private关键字在以下场景中的作用域是什么:classFoodefbar_publicputs"public"endprivatedefbar_privateputs"private"enddefbar_public_2puts"anotherpublic"endendprivate是否只作用于bar_private?还是在bar_public_2上? 最佳答案 在您的例子中,bar_private和bar_public_2都是私有(private)的。那是因为这两种方法都在private关键字的“范围内”。
我一定是犯了n00b错误。我编写了以下Ruby代码:moduleFoodefbar(number)returnnumber.to_s()endendputsFoo.bar(1)测试.rb:6:in':undefinedmethodbar'forFoo:Module(NoMethodError)我想在名为Foo.bar的模块上定义一个方法。但是,当我尝试运行代码时,出现未定义方法错误。我做错了什么? 最佳答案 你可以这样做:moduleFoodefself.bar(number)number.to_sendendputsFoo.bar
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它
如thisanswer中所述,在Ruby2.1或更高版本中,此代码:classSimpleTestprivatedefine_method:foodo42endend将定义foo作为SimpleTest的私有(private)方法实例。(在Ruby2.0和更早版本中,它不会是私有(private)的。)但是,我希望做一些不那么琐碎的事情。我想定义一个类可以扩展的DSL,并希望DSL在内部定义的方法尊重调用上下文的私有(private)/protected可见性。这可能不是很清楚,所以这里有一个例子:moduleDsldefhas_a(name)define_methodnamedo42
更新:当输入“passenger-memory-stats”时,我显示:---Passengerprocesses---Processes:0我该如何解决这个问题?为什么即使我在httpd.conf中添加它并重新启动apache,passenger也不会启动?我无法让PhusionPassenger在服务器上运行RubyonRails。我已经按照Phusion网站上的所有说明安装了passenger并修改并创建了ApacheVirtualHost以指向新目录并验证所有.conf文件都已成功加载。还加载了httpd-Mpassenger_module。我还在本地主机上成功运行了Passe
当我将我的Rails+React应用程序部署到Heroku时,我遇到了问题。React客户端位于Rails应用程序的client/目录中。由于使用了react-router,Rails服务器需要知道从React构建中渲染index.html。当我在Heroku上部署客户端时,脚本将内容从client/build/.复制到Rails应用程序的public/目录。现在问题来了:当我的路由检测到类似example.com/about的路径时,它会尝试呈现public/index.html。方法如下:deffallback_index_htmlrenderfile:"public/index.