Използване на mod_rewrite за премахване на разширение .php от заявки

Имам акаунт в godaddy и се опитвам да накарам URL адресите на уебсайта си да изключат разширението .php в края на пътя, като направя някакъв скрипт mod_rewrite, но скриптът ми не работи. Ето го:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^\.]+)/$ $1.php

Ако има нещо, което не съм включил или някакви грешки в този скрипт, моля, помогнете ми да го разбера.

Прегледах различни подобни публикации относно този проблем, но никой не ми даде отговори, които да ми помогнат да разреша този проблем.


person Husso    schedule 27.08.2014    source източник
comment
Какъв точно входен URL тествате? Вашият RewriteRule очаква завършващ /   -  person Michael Berkowski    schedule 28.08.2014
comment
Прост URL адрес, например foo.com/index.php, ще стане foo.com/index   -  person Husso    schedule 28.08.2014
comment
Ето как сега работи mod_rewrite. Той няма да промени активно заявка към /index.php в /index, освен ако не свършите много повече работа (както в отговора на Джъстин по-долу). Обикновено се използва за безшумна промяна на /index в /index.php, което е това, което имате по-горе.   -  person Michael Berkowski    schedule 28.08.2014


Отговори (1)


Ако активирате опцията MultiViews (договаряне на съдържанието на apache), ще можете да достигнете както до /page, така и до /page.php

Options +MultiViews

Но ако искате само /page (и пренасочете /page.php към /page), можете да го направите по този начин

Options -MultiViews
RewriteEngine On

RewriteCond %{THE_REQUEST} \s/([^/]+)\.php [NC]
RewriteRule . /%1? [R=301,L]

RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ /$1.php [L]
person Justin Iurman    schedule 27.08.2014
comment
Аз съм много нов в работата със сървърната администрация и се опитах да използвам вашия скрипт в моя .htaccess файл. В крайна сметка не проработи. Възможно ли е файлът .htaccess да е поставен в грешната директория (имам го в корена на уебсайта)? Също така, има ли добри онлайн ресурси, които описват как правилно да използвате mod_rewrite? - person Husso; 28.08.2014
comment
Съжалявам, забравих наклонена черта, която променя всичко. Тествах го и работи, можете да опитате отново с моя редактиран код - person Justin Iurman; 28.08.2014