2016-10-27 2 views
1

У меня есть проект Larvel 5.1, который работает абсолютно нормально. предположим, что он размещен по адресу http://www.example.com. Когда я перехожу к этому address, он работает нормально, и нет нужного public/ в URL-адресе. Теперь единственная проблема заключается в том, что если кто-то идет по адресу , он видит содержимое домашней страницы без загрузки CSS и JS, что совершенно не подходит для SEO, поскольку оно будет считаться дублированным сайтом. Я пробовал искать через Интернет, но все отвечают, как удалить public/ из URL, но в моем случае он уже удален. Я просто не хочу, чтобы пользователь видел содержимое внутри public/, если он явно туда идет. Есть ли способ достичь этого? Я также отправлю свой файл .htaccess. Он получил много кода для включения кеша, добавив www. с доменом. Пожалуйста, помогите мне решить эту проблему. Я полностью застрял. Вот мои .htaccess содержимое файлаЯ не хочу обслуживать содержимое из общедоступного каталога Laravel 5.1

<IfModule mod_rewrite.c> 
    <IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 
    ## EXPIRES CACHING ## 
    <IfModule mod_expires.c> 
    AddType application/vnd.ms-fontobject .eot 
    AddType application/x-font-ttf .ttf 
    AddType application/x-font-opentype .otf 
    AddType application/x-font-woff .woff 
    AddType image/svg+xml .svg 
    ExpiresActive On 
    ExpiresByType image/jpg "access plus 1 year" 
    ExpiresByType image/jpeg "access plus 1 year" 
    ExpiresByType image/gif "access plus 1 year" 
    ExpiresByType image/png "access plus 1 year" 
    ExpiresByType text/css "access plus 1 month" 
    ExpiresByType application/pdf "access plus 1 month" 
    ExpiresByType text/x-javascript "access plus 1 month" 
    ExpiresByType application/x-shockwave-flash "access plus 1 month" 
    ExpiresByType image/x-icon "access plus 1 year" 
    # Add a far future Expires header for fonts 
    ExpiresByType application/vnd.ms-fontobject "access plus 1 year" 
    ExpiresByType application/x-font-ttf "access plus 1 year" 
    ExpiresByType application/x-font-opentype "access plus 1 year" 
    ExpiresByType application/x-font-woff "access plus 1 year" 
    ExpiresByType image/svg+xml "access plus 1 year" 
    ExpiresDefault "access plus 1 week" 
    </IfModule> 
    ## EXPIRES CACHING ## 

    RewriteEngine On 
    RewriteCond %{HTTP_HOST} !^www\. 
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

    # 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] 
</IfModule> 

ответ

0

Это происходит от того, что я думаю, что это ленивое дизайнерское решение, позволяя все каталоги и файлы, которые будут точками входа. WordPress делает то же самое. Вы можете исправить это следующим образом:

# Handle Front Controller... 
RewriteCond $0 =public [OR] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^[^/]* index.php [L] 

Это следует игнорировать проверку каталога для всего /public/ и оставить другие функции без изменений.

+0

Спасибо @Walf. Оно работало завораживающе. Помогло мне много. Думаю, я должен изучить документ Apache больше ;-) –

+0

Apache docs блестящие, но на практике действительно практиковать применение общих концепций к конкретным проблемам. – Walf

-1

в корне создать .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

Это последнее правило в основном представляет собой бесконечный цикл префикса, который останавливается только 'LimitInternalRecursion'. – Walf

+0

спасибо, я удаляю эту часть – Dexture

Смежные вопросы