0

こんにちは私はURLに公開されていないかわいいURLを設定するという問題に直面していますが、私にとってはうまくいきません。

私はすでに試しました

Laravel 5.2 きれいな URLLaravel 5 - URL から public を削除

より類似した URL がありますが、私には何も機能しないようです。

私はワンプ、Windows 8を使用しています

mod_rewrite がオンになっていて、正常に動作していることを確認しました。

これがルート上の私のhtaccessです。

RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]

パブリックフォルダー内のテストでの私の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}]
</IfModule>

また、ルートフォルダーのパブリックフォルダーからhtacessを貼り付けようとし、パブリックフォルダーからhtacessを削除しましたが、うまくいきません

実際に発生するエラーは、Route::get('/api/login', 'api@login') のようなものがある場合、ルートファイルがすべてのパターンをスキップするということです。パブリックを含む URL で動作しますが、削除するとpublic from url では、すべてのパターンがスキップされます。そしてそれは404を示しています

すべてのリクエストがpublic/index.phpに到達していることを確認しましたが、不思議なことは、印刷するときです

var_dump(Request::root());

routes.php では、パブリックのある URL の場合はhttp://localhost/folderName/subFolderName/publicと表示されますが、パブリックのない URL の場合はhttp://localhost/と表示されます。これが、ルート ファイルのパターンが動作していません。

PSこれを機能させるために適切に構成する必要があるのは.htaccessだと思うため、pretty urls laravel 5.4代わりにタイトルを設定しました。laravel routes not working

フォルダ構造を変更したくないのは、このような理由があり、これを回避する必要があると信じているからです。

仮想ホストの設定に関しては、サーバー上でこれを行うことはできません (私には権利がないため) ため、ログイン実行でこれを解決する必要があるため、回避策としてローカルに仮想ホストを設定する必要はありません。

4

1 に答える 1

0

public/.htaccess でこれを試してください

RewriteRule ^ /public/index.php [L]

そして、ルートの .htaccess

RewriteRule ^(.*)$ /public/$1 [L]
于 2017-04-09T06:41:33.133 に答える