проблема с косой чертой в конце htaccess

У меня возникают проблемы с URL-адресом без косой черты. Я искал в Google, но не смог получить точный результат.

  From Url : local.xxxx.com/stories

Когда я пытаюсь использовать указанный выше URL, он перенаправляется на

  To Url : local.xxxx.com/sapp/View//stories/

Доступ:

DirectorySlash Off
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/app/View/%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/app/View/%{REQUEST_URI} -d
RewriteRule ^ /app/View/%{REQUEST_URI} [L]

Теперь я получаю ошибку 403 Forbidden. У вас нет разрешения на доступ к /app/View//stories на этом сервере.

Если я добавлю косую черту в конце, то все работает отлично. Если нет косой черты, мы можем добавить косую черту в конце URL-адреса, если нет параметров.

Может ли кто-нибудь предложить, как я могу этого добиться.


person robert    schedule 26.11.2015    source источник
comment
Где вы добавляете косую черту в конце?   -  person jerdiggity    schedule 26.11.2015
comment
Неважно... @anubhava спешит на помощь. ;)   -  person jerdiggity    schedule 26.11.2015
comment
Если мы добавим косую черту в конце URL-адреса, он будет работать нормально. Если в конце URL-адреса нет косой черты, он перенаправляет в папку с представлениями.   -  person robert    schedule 26.11.2015


Ответы (1)


Скорее всего, это связано с тем, что /app/View/stories/ является реальным каталогом, а mod_dir в Apache добавляет косую черту.

Вы можете исправить, используя этот код:

DirectorySlash Off
RewriteEngine On

# internally add a trailing slash to directories
RewriteCond %{DOCUMENT_ROOT}/app/View/%{REQUEST_URI} -d
RewriteRule [^/]$ /app/View/%{REQUEST_URI}/ [L] 

RewriteCond %{DOCUMENT_ROOT}/app/View/%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/app/View/%{REQUEST_URI} -d
RewriteRule ^ /app/View/%{REQUEST_URI} [L]
person anubhava    schedule 26.11.2015
comment
@Anuhava, все еще URL перенаправляет на /app/View/stories/. Ваше предположение идеально. но это не работает для меня. - person robert; 26.11.2015
comment
Вопрос обновлен. Мы можем добавить косую черту в конце URL-адреса, если нет параметров и расширений .php. Пожалуйста, проверьте один раз - person robert; 26.11.2015
comment
Что происходит, когда вы вводите http://domaon.com/app/View/stories в браузере? Это тоже дает 403? Попробуйте добавить Options +Indexes вверху вашего .htaccess. - person anubhava; 26.11.2015
comment
@анубава. Я исправил это, используя приведенный ниже код. RewriteCond %{DOCUMENT_ROOT}/app/View/%{REQUEST_URI} -d RewriteRule ^ /app/View/%{REQUEST_URI}/ [L] - person robert; 26.11.2015
comment
Ах, верно, рад, что это сработало (ответ обновлен с вашим рабочим правилом) - person anubhava; 26.11.2015
comment
Спасибо Анубхава. Он работает нормально в соответствии с перспективой URL. Возникла еще одна проблема... На всех моих страницах просмотра я использую ссылки Href ./list.php . Раньше он работал, как ожидалось. Теперь он берется из корневого пути. Не берется из DocumentRoot/stories/list.php. Итак, мне нужно добавить косую черту физически. любые предложения? - person robert; 27.11.2015
comment
Давайте продолжим обсуждение в чате. - person robert; 27.11.2015
comment
Извините, я только что зашел в сеть. Находится ли list.php физически в каталоге /app/View/? - person anubhava; 27.11.2015