Я нашел много учебников и вопросов относительно удаления расширения.php в URL. Я пробовал много примеров, и до сих пор он все еще не работает. Это сводит меня с ума. Я также хочу поставить трейлинг-косую черту в конце URL-адреса, но сначала хочу сделать это первым. В настоящее время я пробовал это, что является одним из моих решений:
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L]
а также это:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
Ничего хорошего. Я работаю на своем ноутбуке с помощью Windows 7 и с помощью XAMPP. Я просто создал свой файл.htaccess и поместил его в localhost/myFolder. Когда я запускаюсь в браузере, в зависимости от моего решения, (i) несколько раз я не получил страницу, (ii) иногда внутреннюю ошибку сервера. Также, когда я запускаю, например, localhost/myFolder/index, URL-адрес будет перенаправлен на localhost/index без myFolder. Интересно, почему это происходит и надежда, что кто-то может дать мне ссылки или решения, потому что я пробовал так много из них. Заранее спасибо.
Следующие работы отлично подходят для меня:
RewriteEngine On
RewriteBase /myFolder
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*[^/])/?$ $1.php [L]
RewriteBase
? Поместите файл .htaccess в каталог myFolder
.
Решение вашей проблемы:
Options +MultiViews
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/myFolder/$1.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
Я просто заменил свой -
знак в multiviews
и начал работать на моем локальном хосте
Попробуйте этот код в /myFolder/.htaccess для скрытия.php extensin:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/myFolder/$1.php -f
RewriteRule ^(.+?)/?$ $1.php [L]