Игнорировать косую черту с помощью Apache Rewrite - PullRequest
7 голосов
/ 01 октября 2011

Я использую mod_rewrite для перенаправления следующим образом:

RewriteRule (work)/?$ $1.php [L]

Отправляет любой URL-адрес, заканчивающийся /work или /work/ на work.php

Проблема в том, что, если включить косую черту, он обрабатывает его как каталог, а не файл, которым он на самом деле является. Это, конечно, нарушает все мои относительные пути в файле.

Я не против иметь косую черту в URL, но есть ли способ использовать Apache для игнорирования завершающей косой черты и обрабатывать URL как файл, так же, как без косой черты

1 Ответ

11 голосов
/ 02 октября 2011

Поскольку вы не хотите, чтобы URL выглядел как www.domain.com/work/, вот что вы можете сделать:

  RewriteEngine On
  RewriteRule ^work/$ http://www.domain.com/work%{REQUEST_URI} [R=301,L,NC]
  RewriteRule (work)$ $1.php [L,QSA,NC]

Это перенаправит /work/ на /work и /work/?page=main на /work?page=main

...