在我的域名公共目录上是laravel公共目录。还有index.php和htaccess文件。但我想访问mydomain.com/demo/
,其中demo
是一个文件夹。由于路由重写,我总是将我重定向到我的主页mydomain.com
。那么如何访问mydomain.com中的文件夹。遵循我的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>
提前致谢
答案 0 :(得分:0)
在demo目录中创建一个单独的.htaccess文件,以覆盖根目录中的.htaccess文件。
Order Allow,Deny
Allow from all
答案 1 :(得分:0)
在demo目录中创建一个单独的.htaccess(如Brian Dillingham所说)文件,以覆盖根目录中的.htaccess文件。 但请改用下面的使用代码:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
此外,您可以参考以下答案:https://stackoverflow.com/a/38068912
答案 2 :(得分:0)
对于那些使用公共域但Laravel目录位于子目录中的用户。您可能具有以下文件夹结构:
- / <-- directory your domain (e.g. "https://example.com") points to
- some_subfolder1/
- some_subfolder2/
- laravel_project/
- ...
- public/
- .htaccess <-- File one has to modify
- index.php
- ...
用于前端控制器的.htaccess文件的RewriteRule
如下所示:
RewriteRule ^ laravel_project/public/index.php [L]
所以您最终会得到:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteBase /
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ laravel_project/public/index.php [L]
</IfModule>
此外,我还修改了.env
参数的APP_URL
文件:
APP_URL=https://example.com/laravel_project/public
此外,您可能会考虑将laravel项目文件(尽管来自公用文件夹)移到该文件树之外。