在不编辑URL客户端的情况下解析其他文件夹中的根文件夹

时间:2018-08-30 16:10:51

标签: apache .htaccess mod-rewrite

我需要在不编辑客户端URL的情况下将根文件夹public_html(www.example.com)解析为另一个文件夹(www.example.com/laravel/public/)。

我尝试过:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^.*$ https://www.mysite.lol/laravel/public/ [R=301,L]

.htaccess文件将编辑客户端URL,如下所示:

https://www.example.com/laravel/public/

有什么想法吗?

编辑:

感谢您的回答塞纳·怀特:

现在响应为404,我的apache_error.log已记录以下内容:

[Fri Aug 31 13:18:35.427305 2018] [rewrite:trace3] [pid 4544:tid 1992] mod_rewrite.c(482): [client 127.0.0.1:52310] 127.0.0.1 - - [spotlike.plain/sid#2534f80][rid#256e1c0/initial] [perdir C:/xampp/htdocs/repositorios/mysite/] applying pattern '^laravel/public/' to uri ''
[Fri Aug 31 13:18:35.427305 2018] [rewrite:trace2] [pid 4544:tid 1992] mod_rewrite.c(482): [client 127.0.0.1:52310] 127.0.0.1 - - [mysite.plain/sid#2534f80][rid#256e1c0/initial] [perdir C:/xampp/htdocs/repositorios/mysite/] rewrite '' -> '/laravel/public/repositorios/mysite/'

编辑2

laravel / public内部存在一个.htaccess文件,如下所示:

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On

# 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 ^ index.php [L]

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

编辑3

我可以解决内部重定向,换句话说,是怀特先生哈哈

RewriteRule .* laravel/public/ [L]

但是我丢失了所有资产,该站点尝试在根文件夹中找到文件,例如:

https://website.lol/landing/img/logos-web/Samsung.png

(/着陆,是/ laravel文件夹中的资产文件夹)

1 个答案:

答案 0 :(得分:0)

听起来像您需要一个内部重写,而不是您当前拥有的外部重定向(尽管它也是错误的,因为它将所有内容都重定向到您的房屋)页)。

尝试使用以下类似方法代替当前的RewriteRule指令:

RewriteRule !^laravel/public/ /laravel/public%{REQUEST_URI} [L]

并确保在测试之前清除浏览器缓存。