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
должен быть полностью скрыт от клиента. (?)