Назад | Перейти на главную страницу

RewriteRule не работает при нажатии index.php

RewriteRule не работает при нажатии index.php. Ниже мой код:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^home$ /index.php [L]

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^bagsgentssel/([0-9]+)$ /bagsgentssel.php?h=$1 [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /leather-product.php?n=$1 [QSA,L]

Когда index.php загружается в первый раз, он отлично работает.

Но когда я нажимаю на другие ссылки, такие как: Link1: leather-product.php: при нажатии на эту ссылку URL-адрес изменяется на «localhost / leather-product / 12», а Link2: bagfentssel.php: если я нажимаю на эту ссылку, URL-адрес изменения на "localhost / baggentssel / 45"

Если после щелчка по вышеуказанным ссылкам я нажимаю на логотип компании, который в основном является ссылкой на index.php, URL-адрес меняется на «localhost / leather-product / index.php».

<a href="index.php" class="navbar-brand" style="border:0px solid red;">
   <img src="/images/logo.jpg" class="img-responsive" alt="xyz co">
</a>

Точно так же, если я нажимаю URL-адрес Link2, он меняется на «localhost / leather-product / index.php»

Почему это происходит. Я знаю, что в коде что-то не так. Но где? Пожалуйста помоги??

<a href="index.php" class="navbar-brand" style="border:0px solid red;">

Проблема здесь, кажется, в том, что вы ссылаетесь на родственник URL (index.php) в вашем HTML. Например, если браузер в настоящее время просматривает URL-адрес /leather-product/12 затем на стороне клиента родственник URL, например index.php естественно разрешается относительно /leather-product/12 и становится /leather-product/index.php. Все это происходит в клиентском HTML - в браузере.

Вместо этого вам нужно сделать URL-адрес относительным корнем (префикс косой черты), т.е. /index.php. (Или просто / - предполагая, что ваш DirectoryIndex установлен правильно.)

См. Также этот связанный вопрос в стеке веб-мастеров:


Но когда я нажимаю на другие ссылки, такие как: Link1: leather-product.php: при нажатии на эту ссылку URL-адрес меняется на «localhost / leather-product / 12»

В стороне: Чтобы уточнить, сама ссылка не должна содержать leather-product.php и URL не должен "меняться" на /leather-product/12 - как вы, кажется, подразумеваете. Единственная видимая ссылка / URL, которую вы должны увидеть, это /leather-product/12. leather-product.php должен быть полностью скрыт от клиента. (?)