[英][edit]How can I rewrite my URL with .htaccess according to these needs?
[英]How can i make htaccess rewrite not to affect other url links on my page
使用.htaccess
重寫我的 URL 后,我現在面臨着不同的挑戰。 我的detail.php
頁面上的所有其他鏈接不再正確。
例子:
這應該是正常的 URL:
http://localhost/FashionSite/about-us.php
但它現在顯示:
http://localhost/FashionSite/product/Coporate/polo-and-trouser/about-us.php
該detail.php
頁面上的所有 URL 鏈接都會發生這種情況。
下面是我的.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
子目錄中。
或者,在頁面的head
設置base
標簽,向瀏覽器指示所有相關鏈接應該相對於的 URL。 例如:
<base href="http://localhost/FashionSite/index.php">
但是, base
標簽並非沒有警告。 例如<a href="#top"
形式的頁內錨點現在也與此基本 URL 相關。 將所有鏈接更改為根相關(或絕對)鏈接是可取的。
請參閱我在 Pro Webmasters stack 上討論類似問題的答案:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.