Механизм перезаписи Apache — удаление расширения PHP, получение строки запроса и добавление косой черты в конце.Apache

Ответить Пред. темаСлед. тема
Anonymous
 Механизм перезаписи Apache — удаление расширения PHP, получение строки запроса и добавление косой черты в конце.

Сообщение Anonymous »

Недавно я начал работать с механизмом перезаписи и попросил помочь удалить расширение PHP и добавить косую черту в URL-адресах. Здесь Анубхава предоставил прекрасно работающее решение. Для быстрого ознакомления файл конфигурации представлен ниже:

.htaccess

Код: Выделить всё

RewriteEngine On

# removes .php and adds a trailing /
# i.e. to externally redirect /path/file.php to /path/file/
RewriteCond %{THE_REQUEST} \s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1/ [R=307,NE,L]

# adds a trailing slash to non files
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule [^/]$ %{REQUEST_URI}/ [L,R=307,NE]

# internally rewrites /path/file/ to /path/file.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)/$ $1.php [L]
Эта конфигурация работает должным образом для таких URL-адресов, как:

Код: Выделить всё

https://example.com/test.php
https://example.com/test
https://example.com/test/
Все приведенные выше URL-адреса переписаны на:

Код: Выделить всё

https://example.com/test/
Пока все хорошо, за исключением того, что если PHP-файл содержит строку запроса, он работает немного не так, как хотелось бы. Например, если URL-адрес:

Код: Выделить всё

https://example.com/test.php?lang=en&id=3
Затем он перезаписывается на:

Код: Выделить всё

https://example.com/test/?lang=en&id=3
К сожалению, я не ожидал этой проблемы, которая вызывает у меня проблемы, поскольку я не могу записать строку запроса в файл PHP ниже.

test.php Чтобы решить эту проблему, мне нужен метод для захвата строки запроса PHP. Я думаю, что перезапись URL-адреса на https://example.com/test?lang=en&id=3/ может сработать. Однако я открыт для альтернативных решений.

Изменить: учитывая сложность проблемы, косая черта в конце необязательна, но я хотел бы удалить расширение PHP и иметь возможность захватить строку запроса.

Подробнее здесь: https://stackoverflow.com/questions/784 ... and-append
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Apache»