У меня есть два веб-сайта на сервере Red Hat Linux; первый находится в var/www
и имеет следующую конфигурацию в var/www/html/.htaccess
.
Options +FollowSymLinks +ExecCGI
<IfModule mod_rewrite.c>
RewriteEngine On
# Reroute to index.php
RewriteCond $1 !^(index\.php)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]
</IfModule>
Второй сайт находится в var/www/laravel
, а его конфигурационный файл - в var/www/laravel/public/.htaccess
. Я попытался использовать ту же конфигурацию, что и на первом сайте, удалив файл и используя конфигурацию по умолчанию, указанную ниже:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Я также использовал предоставленный конфиг в документации :
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Я также проверил, не откомментирован ли мой mod_rewrite
с помощью этой команды:
grep -i LoadModule /etc/httpd/conf/httpd.conf | grep rewrite
и это так.
Первый веб-сайт работает нормально без index.php
, но Laravel нужен один.
Любые намеки на то, что я делаю неправильно?
РЕДАКТИРОВАТЬ: вот как я создал псевдоним для второго сайта, может быть, это поможет:
<VirtualHost *:80>
ServerAdmin example@example.com
DocumentRoot /var/www/html/
ServerName www.example.com
ServerAlias *.example.com
Alias /laravel /var/www/laravel/public/
ErrorLog "|/usr/sbin/rotatelogs /var/log/httpd/www.example.com-error_log.%y%m%d 86400"
CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/www.example.com-access_log.%y%m%d 86400" combined
# php_admin_value upload_tmp_dir "/var/www/html/tmp/"
# php_admin_value open_basedir "/var/www/html/:/var/cache/www/"
<Directory /var/www/html/>
AllowOverride All
</Directory>
<Directory /var/www/laravel/public/>
AllowOverride All
</Directory>
</VirtualHost>