2016-01-18 4 views
3

У меня есть один конкретный каталог, где я хочу замаскировать URL. Похоже, что это прямо сейчас:HTAccess переписать PHP GET в одном каталоге

https://www.example.com/users/invoice/?order=0000000 

Я хочу, чтобы она выглядела так:

https://www.example.com/users/invoice/0000000 

Я попытался добавить эту строку в моей корневой файл .htaccess:

RewriteEngine On 
RewriteRule ^users/invoice/(.*)$ users/invoice/?order=$1 [L] 

, но это вызывает ошибку 500, когда я пытаюсь получить доступ к любому URL-адресу в пределах /users/invoice/.

Что я делаю неправильно? И есть ли способ написать правило непосредственно в файл .htaccess в /users/invoice/?

+0

Как создать файл .htacess под учетной записью вместо корневого каталога с более простым правилом? – CarlosCarucce

ответ

2

Имейте это так:

RewriteEngine On 

# If the request is not for a valid directory 
RewriteCond %{REQUEST_FILENAME} !-d 
# If the request is not for a valid file 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^users/invoice/(.+)$ users/invoice/?order=$1 [L,QSA] 

Без выше RewriteCond ваш цикл правило будет бесконечно и вызвать 500 внутренняя ошибка в конце концов.

+0

Зачем он контур бесконечно? – showdev

+2

Поскольку 'users/invoice /.*' также будет соответствовать 'users/invoice/index.php' – anubhava

+0

Откуда появляется' index.php'? – showdev

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