Как я могу сделать переписать htaccess, чтобы не влиять на другие ссылки на моей странице

После использования .htaccess чтобы переписать мой URL, я столкнулся с другой проблемой.
Все остальные ссылки на мой detail.php страница больше не верна.

Пример:

Это должен быть обычный URL:

http://localhost/FashionSite/about-us.php

Но теперь он показывает это:

http://localhost/FashionSite/product/Coporate/polo-and-trouser/about-us.php

Это происходит со всеми ссылками URL на этом detail.php стр.

Ниже мой .htaccess код, и он работает хорошо, но на detail страница, каждый другой URL меняется:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(admin|user)($|/) - [L]
RewriteRule ^(slide|user)($|/) - [L]
RewriteCond %{REQUEST_URI} !\.(?:css|js|jpe?g|gif|png)$ [NC]
RewriteRule ^product/(.*)/(.*)/ detail.php?ID=$1&url=$2 [L]
RewriteRule ^product/[^/]+/[^/]+(/.+)$ http://localhost/FashionSite/$1  [L]
</IfModule>

Пожалуйста, что я должен сделать или добавить в код, чтобы эти ссылки были нормальными.

2

Решение

Похоже, вы используете родственник URL-адреса для ссылки на ваши страницы. Все относительные ссылки в HTML относятся к URL на стороне клиента. Если вы переписываете URL, то ваши ссылки теперь будут относиться к переписанному URL.

Например, если браузер в данный момент показывает URL http://localhost/FashionSite/product/Coporate/polo-and-trouser/detail.php тогда якорь формы <a href="about-us.php"> естественно будет относительно этого URL, и браузер разрешит это http://localhost/FashionSite/product/Coporate/polo-and-trouser/about-us.php,

Вам нужно изменить свои внутренние ссылки, чтобы использовать либо относительный корень (начиная с косой черты), либо абсолютный URL (со схемой + имя хоста). Например: <a href="about-us.php"> следует изменить на <a href="/FashionSite/about-us.php"> (Если все в /FashionSite подкаталог.

Или установите base тег в head вашей страницы, которая указывает браузеру URL-адрес, что все относительные ссылки должны быть родственник к. Например:

<base href="http://localhost/FashionSite/index.php">

Тем не менее base Тег не без его предостережений. Такие как встроенные якоря формы <a href="#top" теперь также относительно этого базового URL. Изменение всех ваших ссылок на корневые (или абсолютные) является предпочтительным.

Посмотрите мой ответ о стеке профессиональных веб-мастеров, в котором обсуждается похожая проблема:

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]