Я пытался удалить index.php
из URL-адреса, на моем сервере WAMP. ЭТО работало отлично, но по какой-то причине на моем фактическом размещенном сервере это не так.
Я только что создал на моем текущем Linux Ubuntu Server поддомену под /var/www/tools.example.com/public_html
Я проверил, включен ли mod_rewrite
с помощью файла.php, который я загрузил в каталог:
<?php
phpinfo();
и mod_rewrite находится в разделе "Загруженные модули". так что не беспокойтесь здесь.
файл.conf, который я создал в etc/apache2/sites-available/tools.example.com.conf, выглядит так:
<VirtualHost *:80>
ServerName tools.example.com
ServerAdmin [email protected]
ErrorLog /var/www/tools.example.com/logs/error.log
CustomLog /var/www/tools.example.com/logs/access.log combined
DocumentRoot /var/www/tools.example.com/public_html
<Directory /var/www/tools.example.com.conf/public_html/>
Options Indexes FollowSymLinks MultiViews
# changed from None to FileInfo
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
где AllowOverride All
так что использование mod_rewrite с.htaccess включено.
Я не знаю, почему это все еще не работает. Любая идея почему?
содержимое файла.htaccess в основном каталоге:
RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index.php|resources|robots.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Редактировать # 1:
Я уже прошел все первые 9 решений в этой статье: CodeIgniter удаляет index.php из url
Ваш путь неверен в вашем.conf файле для директивы каталога. Ваш корневой каталог должен быть таким же, как и директива Directory. Поэтому я не думаю, что он AllowOverride All
директиву AllowOverride All
.
Изменить это
<Directory /var/www/tools.example.com.conf/public_html/>
К этому
<Directory /var/www/tools.example.com/public_html/>