2016-08-09 3 views
2

Я сделал каталог в мой хозяин:как использовать .htaccess в Laravel

www.mysite.com/test/ 

и я скопировал Laravel папки внутри нее. но когда я называю этот URL на моем браузере это показать мне это:

enter image description here

Я думаю, что я должен сделать .htaccess.

+0

хороший вопрос, я также поиск по этому поводу , Но не может найти решение. – Cloud

+0

Используйте этот URL: www.mysite.com/test/public –

ответ

0

Вот образец для моего случая и Вашего случая: -

Моего случая: -

URL Before .htaccess www.xyz.com/public/index.php 
URL After .htaccess www.xyz.com 

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .* public/index.php [L] 

Вашего случай: -

URL Before .htaccess www.xyz.com/test/public/index.php 
URL After .htaccess www.xyz.com 

Options +FollowSymLinks 
RewriteEngine On 


RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .* test/public/index.php [L] 
0

Приложение Laravel находится внутри/общие папки, который также уже имеет .htaccess: mysite.com/public/test

Что вы можете сделать, это символическая ссылка project/public папка в общий каталог. Например:

ln -s /path/to/project/public /var/www 

Теперь вы должны быть в состоянии увидеть приложение на mysite.com/test.

This article при развертывании приложения Laravel 5 может помочь.

0

Создайте файл .htaccess в корневом каталоге вашего laravel. Это к нему доступ без «общественности» на URL

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteCond %{REQUEST_URI}!^public 
    RewriteRule ^(.*)$ public/$1 [L] 
</IfModule> 
0

.htaccess файл уже существует в общей папке, что вам нужно настроить ваш сервер

для Linux на терминале выполнить:

cd /etc/apache2/sites-available 
/etc/apache2/sites-available$ sudo vi myapp.conf 

Добавить/изменить эти строки в соответствии с вашим Сервером

<VirtualHost *:80> 
ServerName myapp.localhost.com 
DocumentRoot "/home/vagrant/projects/myapp/public" 
<Directory "/home/vagrant/projects/myapp/public"> 
AllowOverride all 
</Directory> 
</VirtualHost> 

Сохраните файл, затем продолжите работу ниже.

/etc/apache2/sites-available$ cd ../sites-enabled 
/etc/apache2/sites-enabled$ sudo ln -s ../sites-available/myapp.conf 
/etc/apache2/sites-enabled$ sudo service apache2 restart 

И для Windows Servers в корневой папке Laravel добавить файл web.config и писать эти коды внутри него

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<system.webServer> 
    <defaultDocument> 
     <files> 
      <clear /> 
      <add value="index.php" /> 
      <add value="default.aspx" /> 
      <add value="Default.htm" /> 
      <add value="Default.asp" /> 
      <add value="index.htm" /> 
      <add value="index.html" /> 
     </files> 
    </defaultDocument> 
    <handlers accessPolicy="Read, Execute, Script" /> 
    <rewrite> 
     <rules> 
      <rule name="Imported Rule 1"> 
       <match url="^(.*)$" ignoreCase="false" /> 
       <action type="Rewrite" url="/public/{R:1}" /> 
      </rule> 
      <rule name="Imported Rule 2" stopProcessing="true"> 
       <match url="^(.*)$" /> 
       <conditions logicalGrouping="MatchAll"> 
        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> 
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> 
       </conditions> 
       <action type="Rewrite" url="public/index.php/{R:1}" /> 
      </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 

)

+0

Что делать, если у него нет доступа к SSH? @nour – vijayrana

+0

@vijayrana Вы имеете в виду общий хостинг? – Nour

+0

Да, у общего хостинга нет доступа к команде выполнения – vijayrana

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