2013-10-24 4 views
0

Я пытаюсь реализовать URL-адрес таким образом localhost/mysite/contact/without php extension и добавить конечную косую черту в конце, но она не работает.Удалить расширение php-файла

Это пример кода:

RewriteRule ^([^/]+)/$ $1.php 
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)$ /$1/ [R=301,L] 

Как я могу реализовать следующее: локальный/MySite/страница/ Любая помощь, пожалуйста? Спасибо.

+0

Является ли ваш PHP доступным как 'http: // localhost/mysite/contact.php'? – anubhava

+0

Правильно. Это http: //localhost/mysite/contact.php – test

ответ

0

Включить mod_rewrite и .htaccess через httpd.conf, а затем поместить этот код в DOCUMENT_ROOT/.htaccess файле:

RewriteEngine On 
RewriteBase /mysite/ 

RewriteRule ^foo/?$ bar [L,NC,R] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/mysite/$1.php -f 
RewriteRule ^(.+?)/?$ $1.php [L] 
+0

Извините anubhava. Это не работает. – test

+0

Так что происходит, когда вы вводите: 'http: // localhost/mysite/contact'? Вы получаете 404? Также это в 'DOCUMENT_ROOT/.htaccess' ИЛИ' DOCUMENT_ROOT/mysite/.htaccess'? – anubhava

+0

Объект не найден! Запрашиваемый URL-адрес не найден на этом сервере. Если вы указали URL вручную, проверьте правильность написания и повторите попытку. Если вы считаете, что это ошибка сервера, обратитесь к веб-мастеру. Ошибка 404 localhost Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7 – test

0

Убедитесь, что вы включили моды переписаны и загружено

Например RewriteEngine на

это будет работать без файловой системы проверки системы

RewriteRule^([^.?] +) $% {REQUEST_URI} .php [L]

+0

Полный код: RewriteEngine на RewriteBase/MySite/ RewriteRule^([^.?] +) $% {REQUEST_URI} .php [L] test

+0

Я получил такую ​​же проблему перенаправления !! – test

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