2014-11-10 2 views
1

Как мы можем заменить .php ext на .html через .htaccess для файлов корневых файлов, а не файлов поддрежки.Замена .php ext с .html через .htaccess для файлов корневых файлов, а не файлов поддиректории

Пример: www.test.com/home.php следует изменить на www.test.com/home.html , но www.test.com/admin/home.php должен оставаться таким же.

Я просто попытался, как показано ниже:

RewriteEngine on 
RewriteBase/

RewriteCond %{THE_REQUEST} (.*)\.php 
RewriteRule ^(.*)\.php $1.html [R=301,L] 

RewriteCond %{THE_REQUEST} (.*)\.html 
RewriteRule ^(.*)\.html $1.php [L] 

Пожалуйста, помогите мне.

ответ

1

Вы можете использовать подобный код в корневой .htaccess:

RewriteEngine on 
RewriteBase/

RewriteCond %{THE_REQUEST} (.*)\.php 
RewriteRule ^([^/.]+)\.php $1.html [R=301,L] 

RewriteRule ^([^/.]+)\.html $1.php [L,NC] 

[^/.]+ регулярное выражение будет убедиться, чтобы заставить его работать только в корневом каталоге.

+1

Большое вам спасибо за вашу помощь. – vin

+0

Добро пожаловать, рад, что это сработало. – anubhava

0

Измените файл .htaccess в:

RewriteEngine on 
RewriteBase/

RewriteRule ^([^/]*)\.php$ $1.html [R=301,L] 
RewriteRule ^([^/]*)\.html$ $1.php [L] 

Затем обновить все ссылки на ваши корневые страницы для ссылки на *.html

+0

Какой смысл в финальной строке? Кажется, это не служит хорошей цели. – Laird

+0

Он отправляет запрос в исходный php-файл, когда путь заканчивается на .html – kingprawn

+0

Я вижу это, но я не вижу, где OP запросил это. Казалось, он хочет только обратного (.php to .html). – Laird

Смежные вопросы