[英]Unable to rewrite two urls to same folder with .htaccess
我有一個奇怪的問題。 我有一個.htaccess文件,只有在滿足以下這兩個條件/重寫不同的文件夾后,該文件才能工作。 我希望products.php和specs.php頁面都顯示:www.example.com/products/,其后分別是漂亮的URL。 就目前而言,如果我使用不同的文件夾名稱,則只能使它工作。 Products.php在類別中顯示了許多產品的簡短描述(域后將顯示/ candy)。 規格頁面僅顯示一種產品(域后顯示產品系列和產品名稱candy / sweethearts)。 任何幫助將不勝感激!
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
#products.php pages
RewriteCond %{THE_REQUEST} html/products.php
RewriteCond %{QUERY_STRING} ^slug=(.*)$
RewriteRule ^html/products\.php$ http://www.example.com/products/%1? [R=301,L]
RewriteRule ^products/(.*)$ /html/products.php?slug=$1 [L]
#specs.php pages
#RewriteCond %{THE_REQUEST} html/specs.php
#RewriteCond %{QUERY_STRING} ^prodslug=(.*)$
#RewriteRule ^html/specspage\.php$ http://www.example.com/specs/%1? [R=301,L]
#RewriteRule ^specs/(.*)$ /html/specs.php?prodslug=$1 [L]
它們必須不同,否則mod_rewrite將不知道是產品還是規格。 如果網址是:
http://www.example.com/products/asdljfcaijfaewlf
是“ asdljfcaijfaewlf
”產品的一部分嗎? 還是它只是一個規格? 還是都不是? 無法知道mod_rewrite的信息,因為它無法從數據庫或存儲該信息的位置獲取該信息。 它所知道的就是如何根據請求進行匹配。 這就是為什么您需要允許它與/products/
和/specs/
文件夾匹配,以便它知道是否將它們路由到products.php
或specs.php
。
另外,您的規則存在不一致之處:
RewriteRule ^html/specspage\.php$ http://www.example.com/specs/%1? [R=301,L]
需要是
RewriteRule ^html/specs\.php$ http://www.example.com/specs/%1? [R=301,L]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.