【发布时间】:2020-01-31 04:25:33
【问题描述】:
我有一个 Laravel 项目,我希望将我的主域重定向到公用文件夹中的子文件夹,但我不希望 URL 中出现 public。
例如,当我输入example.com 时,我希望自动重定向到example.com/english。
我知道我可以像这样将example.com 重定向到example.com/public/english:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/public/english/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ public/english/$1 [L]
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ public/english/ [L]
</IfModule>
我可以像这样删除public:
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} !^public/
RewriteRule ^(.*)$ public/$1 [L] #relative substitution
</IfModule>
但是我如何将两者结合起来呢?
【问题讨论】:
-
看起来与这个最近的问题非常相似...stackoverflow.com/questions/59937631/…
-
您的服务器应配置为将文档根目录设为公用文件夹,而不是应用程序根目录。这样做是出于安全原因。一旦您将服务器配置为在
public目录之外为应用程序提供服务,将重定向添加到子目录应该很简单。 -
我不完全清楚你需要什么。 VS。内容实际位于何处?您希望在地址栏中显示该内容的哪个地址?文件夹里的内容是
/public/english,但是你想让地址栏显示/english? (我离开了https://example.com舞会,只显示相对地址?)
标签: laravel .htaccess redirect