1

Надеясь, что один из вас может помочь. Я разрабатываю с использованием php без рамки, поэтому все мои правила маршрутизации находятся в .htaccess, а не в .phpСлед slash вызывает ошибку 404 и неправильное поведение URL: APACHE/PHP

Так вот моя проблема. Скажем, мой сайт http://example.com, и моя навигация довольно проста, что означает, что если вы нажмете ссылку на страницу «нажмите», вы перейдете на http://example.com/press или http://example.com/press/, которые оба прекрасны.

Однако, если вам посчастливилось перейти на http://example.com/press/, нажмите другую внутреннюю ссылку в моем навигаторе, например «около» и т. Д. Я не отвечу вас к «/ example», а скорее «/ press/example», который показывает 404, поскольку для этого нет страницы или каталога.

Я попробовал «DirectorySlash Off» в моем .htaccess, но все, что было сделано, не позволяло ни одной из этих страниц показывать, имеет ли URL-адрес/в конце.

У меня есть очень основные настройки .htaccess, смотрите ниже:

<IfModule mod_rewrite.c> 

RewriteEngine On 
# Options -Indexes 
# GEN CONFIG 



# Handle Errors 
ErrorDocument 403 /views/errors/404.php 
ErrorDocument 404 /views/errors/404.php 
ErrorDocument 303 /views/errors/404.php 

# Url renamin 
RewriteRule ^(about-us|About-Us|ABOUT-US)/?$ views/about-us.php [L] 

RewriteRule ^(press|Press|PRESS)/?$ views/press.php [L] 
RewriteRule ^(faq|Faq|FAQ)/?$ views/faq.php [L] 

</IfModule> 

ответ

1

перейти к http://example.com/press/ щелчком другой внутренней линии в моей нав, такие как about и т.д .. Я не возьму вас /about но скорее /press/about

Эта проблема не из-за переписывания правил, а из-за использования относительных путей.

Чтобы исправить, вы можете добавить это чуть ниже <head> раздела HTML вашей страницы:

<base href="/" /> 

так, что каждый относительного URL разрешен из этого базового URL, а не от URL текущей страницы.

+0

Хотя я думал, что то же самое, и пробовал этот метод раньше, он продолжает добавлять следующую ссылку на конечную косую черту в конце. – VickenCode

+0

Кроме того, чтобы еще раз выразить свою точку зрения, если вы перейдете на страницу http://example.com/press/ и нажмите другую ссылку, она просто добавляет ее в конец конечной косой черты. – VickenCode

+0

Да, это будет поведение, если вы используете относительные ссылки вместо абсолютных. Абсолютные пути начинаются либо с 'http: //', либо слэш '/'. – anubhava