Я работаю над приложением MVC PHP.htaccess и перенаправление URL
Мой .htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ /mvc/index.php?url=$1 [QSA,L]
Мой index.php:
<?php
$url = $_REQUEST['url'];
echo $url;
Так что, когда я пишу в URL-адрес что-то вроде (mysite.com/mvc/help), PHP принтами (помощь) на главной странице. Он работает очень хорошо для всего, что я пишу в URL-адресе (mysite.com/mvc/index/log) возвращается (индекс/журнал), но если я пишу (mysite.com/mvc/index), то у меня нет ошибок, но ничего не отображается и $ url не задан!
Надеюсь, я объясню это правильно. Cheers
Редактировать: Я допустил ошибку, (mysite.com/mvc/index/log) ничего не возвращает. Кажется, что если первое слово «index», это не работает, если URL-адрес похож на (mysite.com/mvc/log/index), он работает и возвращает (log/index).
Также я добавил строку в index.php (print_r ($ _ GET);), которая возвращает пустой массив, когда URL-адрес подобен (mysite.com/mvc/index/log или mysite.com/mvc/index), если это может помочь ...
После небольшого расследования я думаю, что проблема заключается в том, что слово «индекс» автоматически заполняется «.html» или «.php», и я не знаю как избавиться от этого ...
Решение: Вот мой Htaccess рабочий:
Options -Indexes +FollowSymLinks -Multiviews
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ /mvc/index.php?url=$1 [L]
Может ли это быть третьим RewriteCond? Я всегда использую! -d и! -f, но никогда не видел! -l раньше. Что это? –
! -d - это «не папка»,! -f «не файл» и! -l - это «не ссылка». Я пробовал без него, но у меня такая же проблема. – M4MM0N