Php Laravel 4.2尾部斜杠导致基本uri
我有一个问题,我仍然无法解决。 我知道这里也有类似的问题,但这些都不起作用 我使用restful控制器。 当我访问Php Laravel 4.2尾部斜杠导致基本uri,php,laravel,Php,Laravel,我有一个问题,我仍然无法解决。 我知道这里也有类似的问题,但这些都不起作用 我使用restful控制器。 当我访问http://localhost/project/public/subsite它可以工作。 但是当我访问http://localhost/project/public/subsite/它将我重定向到http://localhost/subsite 这是我当前的.htaccess文件: <IfModule mod_rewrite.c> <IfModule mo
http://localhost/project/public/subsite
它可以工作。
但是当我访问http://localhost/project/public/subsite/
它将我重定向到http://localhost/subsite
这是我当前的.htaccess文件:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L] </IfModule>
选项-多视图
重新启动发动机
#重定向尾部斜杠。。。
重写规则^(.*)/$/$1[L,R=301]
#处理前控制器。。。
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^index.php[L]
我已经尝试过这些问题的解决方案:
但问题仍然是一样的。尝试添加重写库:
RewriteEngine on
RewriteBase /project/public/
基本上,当您在重写行中指定开始斜杠时:
# V----- This little guy
RewriteRule ^(.*)/$ /$1 [L,R=301]
它说“转到这个URL,从根开始”。因为你的根是http://localhost
,它从那里开始,而不是从项目的根目录开始
RewriteBase /project/public/
RewriteRule ^(.*)/$ $1 [L,R=301]
对我来说,省略克丽德指的斜杠很有效。还要确保清除浏览器缓存,否则更改可能不会生效。“这是我当前的htdocs文件”-我想你是说
.htaccess
文件吧?文件夹结构中的.htaccess
文件在哪里?哦,是的,对不起,我的意思是.htaccess文件-它存储在/project/public/中,这就是问题所在-当您在.htaccess上下文中配置重写时,当重写规则开始工作时,.htaccess目录的路径已从请求URI中剥离–因此您的^(.*)/$
首先只在子网站上匹配。看看预先配置一个RewriteBase
是否可以解决这个问题(我自己也不完全确定)。我已经在问题中提到的其他问题中这样做了,但问题仍然存在。为什么不让webroot指向公用文件夹?