2017-02-16 15 views
0

Я изменить свой адрес отMod Rewrite - Переписать URL

https://example.com/public/contact.php (реальный путь)

к

https://example.com/contact

с использованием мод-рерайт.

contact является просто заполнителем, он должен работать с каждым файлом в каталоге public. Как /home или /login

Я был в состоянии удалить файл extionsion с этим:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 
+0

Что вас означает «изменить»? '/public/contact.php' фактически является реальным путем к файлу, и вы хотите, чтобы к нему обращались через https://example.com/contact? –

+0

yes @EduardoEscobar –

ответ

1
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^/([^\./]+)/?$ 
RewriteRule .* /public/%1.php [L] 

Примечание: Это не будет работать с двумя или более URL-адресов уровня, а именно: https://example.com/contact/form

+0

Нет, посмотрите на журнал ошибок вашего сервера Apache и посмотрите, что является причиной 404 –

+0

Спасибо, что он работает сейчас! но у меня есть еще одна небольшая проблема .. когда я навещаю 'example.com', я хотел бы показать' index.php'. –

+0

Эти правила не конфликтуют ни с 'https: // example.com', ни с' https: // example.com/index.php'. –