После использования .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>
Пожалуйста, что я должен сделать или добавить в код, чтобы эти ссылки были нормальными.
Похоже, вы используете родственник 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. Изменение всех ваших ссылок на корневые (или абсолютные) является предпочтительным.
Посмотрите мой ответ о стеке профессиональных веб-мастеров, в котором обсуждается похожая проблема:
Других решений пока нет …