.htaccess 重定向到相同的子文件夹

.htaccess redirect to same subfolder

我的问题如下:我的公司与其他人共享主机,我们的子域位于“public_html”文件夹中。我可以完美地输入我的页面索引,即在 www.principal.com/mypage 中它可以完美地输入。

问题是当我重定向到我的子域内的页面时,它们重定向到主页的 404 Not Found,也就是说 www.principal.com/mypage/new 404 Not Found 页面 principal.com

主/public_html/.htaccess 文件是

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>

文件public_html/mypage/.htaccess 是

<FilesMatch ".(phtml|php|PhP|php5|suspected)$">
Order Allow,Deny
Allow from all
</FilesMatch>

文件public_html/mypage/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 ^(.*)/$ / [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}]
</IfModule>

我必须澄清一下,我的子域在几天前运行良好,自 3 月以来它运行良好。

Wordpress 是域的主页面,我在子域中的页面使用的是Laravel 框架。 所以,我从 Laravel 重定向到 Laravel whit

Route::group([
    'middleware' => 'auth'],
    function(){
        Route::get('/onepage', 'HomeController@one');
        Route::get('/twopage', 'HomeController@two'); 
});

您的问题是因为使用了根级别 .htaccess 中的指令,甚至某些内容可能被定向到子文件夹中的站点。在 public_html/.htaccess 中尝试这样的操作,以排除发送到 subfoler 的请求:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_URI} !^/autorizaciones/.*
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>

我解决了 我改变了文件 public_html/mypage/.htaccess 是

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /MYPAGE
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>