我看到了一个与我相似的问题,但接受的答案由于某种原因并不起作用。
我的问题是我无法访问位于公用文件夹中的index.php。我尝试了无数组合,并认为它位于正确的文件夹中 - 公共文件夹。
没有效果的答案是使ReWriteBase%{DOCUMENT_ROOT} / public。我这样做了,但获得了索引。但是,至少公共文件夹是不可见的,所以感觉就好像我已经接近了。
感谢任何帮助。
PS。我可以在本地机器上看到RewriteBase / projectname / public的应用程序,但URL必须包含public或者我得到一个Index of page。我希望摆脱公共部分并解决根(域名)。
这是我的.htaccess文件:
Options -MultiViews
RewriteEngine On
RewriteBase %{DOCUMENT_ROOT}/public
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
更新了htaccess文件:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /public/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
答案 0 :(得分:0)
RewriteBase
应该是来自DocumentRoot
而不是完整路径的相对路径。
以下是您需要使用的2.htaccess:
<强>根/ htaccess的:强>
RewriteEngine On
RewriteRule .* public/$0 [L]
公开/ htaccess的:强>
DirectoryIndex index.php
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /public/
RewriteRule ^index\.php$ - [L,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php?url=$0 [QSA,L]