Как удалить расширение .php в середине URL - PullRequest
0 голосов
/ 12 февраля 2019

Вот мой URL: http://localhost/school-project/project1/mypage.php/home

Я хочу избавиться от .php в mypage.php.Поэтому новый URL должен выглядеть следующим образом: http://localhost/school-project/project1/mypage/home

Я пытался использовать RewriteRule в .htaccess, но ни один из них не работал!

Вот код в моем .htaccess:

(этот на самом деле избавляется от .php, но он превратил страницу в Объект не найден, ошибка 404)

RewriteRule ^mypage.php/(.*)$ http://localhost/school-project/project1/mypage/$1[NC,L,R]

или

RewriteRule (.*)mypage/(.*)$ /mypage.php?/$1 [L]

Надеюсьдействительно не знаю, где проблема.Есть идеи?Спасибо!

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Я нашел другое решение для моей проблемы.Большое спасибо за помощь!

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^mypage(/.+)$ mypage.php$1 [NC,L]
0 голосов
/ 12 февраля 2019

Попробуйте:

RewriteEngine on 
RewriteCond %{THE_REQUEST} \s/+(.*)\.php(.*)\sHTTP.*$ [NC]
RewriteRule ^ /%1%2 [R=302,L,NE]
RewriteCond %{REQUEST_URI} !\.php
RewriteRule ^([^\/]*)/([^\/]*)$ $1.php/$2 [L]

Вторая и третья строки удаляют расширение php извне.Четвертое и пятое, чтобы перенаправить запрос на исходный путь изнутри.

Очистить кеш браузера и проверить, если все в порядке, измените R=302 на R=301, чтобы иметь постоянное перенаправление.

...