Я сделал каталог в мой хозяин:как использовать .htaccess в Laravel
www.mysite.com/test/
и я скопировал Laravel папки внутри нее. но когда я называю этот URL на моем браузере это показать мне это:
Я думаю, что я должен сделать .htaccess
.
Я сделал каталог в мой хозяин:как использовать .htaccess в Laravel
www.mysite.com/test/
и я скопировал Laravel папки внутри нее. но когда я называю этот URL на моем браузере это показать мне это:
Я думаю, что я должен сделать .htaccess
.
Вот образец для моего случая и Вашего случая: -
Моего случая: -
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]
Приложение Laravel находится внутри/общие папки, который также уже имеет .htaccess: mysite.com/public/test
Что вы можете сделать, это символическая ссылка project/public
папка в общий каталог. Например:
ln -s /path/to/project/public /var/www
Теперь вы должны быть в состоянии увидеть приложение на mysite.com/test
.
This article при развертывании приложения Laravel 5 может помочь.
Создайте файл .htaccess
в корневом каталоге вашего laravel. Это к нему доступ без «общественности» на URL
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI}!^public
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
.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>
)
хороший вопрос, я также поиск по этому поводу , Но не может найти решение. – Cloud
Используйте этот URL: www.mysite.com/test/public –