多個相同的 url htaccess 重定向 (Multiple same url htaccess redirect)


問題描述

多個相同的 url htaccess 重定向 (Multiple same url htaccess redirect)

I created a custom product/ecommerce website. It has a category, sub‑category and product. Here are the urls that I want to redirect:

website.com/clothes
website.com/clothes/
website.com/clothes/tshirts
website.com/clothes/tshirts/
website.com/clothes/tshirts/bluepinned
website.com/clothes/tshirts/bluepinned/

Here are the .htaccess entries. Is there a way to write the following in one line? For example if the URL was, website.com/clothes/tshirts making sure the PHP files realise that I want to load the tshirts category, and not to display a product called tshirts in the clothes categor.

RewriteCond %{REQUEST_FILENAME} !‑d
RewriteCond %{REQUEST_FILENAME} !‑f
RewriteRule ^(clothes)/([^/\.]+)/([^/\.]+)/?$ products.php?c=$1&sc=$2&p=$3 [NC,L,QSA] 
RewriteRule ^(clothes)/([^/\.]+)/?$ products.php?c=$1&sc=$2 [NC,L,QSA] 
RewriteRule ^(clothes)/?$ products.php?c=$1 [NC,L,QSA] 

I sometimes get 406 errors too when loading product images ‑ are there any rewrite rules that could be making this happen. The actual images are in a separate directory anyway website.com/images/clothes/tshirts/bluepinned.jpg

‑‑‑‑‑

參考解法

方法 1:

You need to apply the conditions to each of the rules separately:

RewriteCond %{REQUEST_FILENAME} !‑d
RewriteCond %{REQUEST_FILENAME} !‑f
RewriteRule ^(clothes)/([^/\.]+)/([^/\.]+)/?$ products.php?c=$1&sc=$2&p=$3 [NC,L,QSA] 

RewriteCond %{REQUEST_FILENAME} !‑d
RewriteCond %{REQUEST_FILENAME} !‑f
RewriteRule ^(clothes)/([^/\.]+)/?$ products.php?c=$1&sc=$2 [NC,L,QSA] 

RewriteCond %{REQUEST_FILENAME} !‑d
RewriteCond %{REQUEST_FILENAME} !‑f
RewriteRule ^(clothes)/?$ products.php?c=$1 [NC,L,QSA] 

It's also possible that there is a relative‑vs‑absolute path issue that could possibly be fixed by adding a

<base href="/">

in your page headers.

(by OurxJon Lin)

參考文件

  1. Multiple same url htaccess redirect (CC BY‑SA 3.0/4.0)

#.htaccess #apache #redirect






相關問題

使用 htaccess 從基本 URL 中刪除變量 (Remove variable from base URL with htaccess)

多個相同的 url htaccess 重定向 (Multiple same url htaccess redirect)

使用 mod_rewrite 更改 URL 中的單詞的問題 (Issue changing a word in a URL using mod_rewrite)

無法在 XAMPP 中進行 301.htaccess 重定向 (Cannot 301.htaccess redirect in XAMPP)

Cách ẩn mọi thứ sau tên trang web của bạn bằng .htaccess (How to hide everything after your webpage name with .htaccess)

htaccess 顯示內部服務器錯誤 (htaccess show internal server error)

mod-rewrite 結合了兩種不同的重寫規則 (mod-rewrite combine two different rewrite rules)

安全的 PHP 文件上傳 (Secure PHP file uploading)

用 .htaccess 重寫基於日期的 URL:s - 解決方案? (Rewriting date-based URL:s with .htaccess - solution?)

htaccess 強制 https 和 www 到非 www,但子域僅 https (htaccess force https & www to non-www, but subdomain only https)

重定向太多。設置 htaccess 以重定向 (too many redirects. setting up htaccess to redirect)

.htaccess https、www 和子域靜默重寫 (.htaccess https, www and subdomain silent rewrite)







留言討論