2016-01-12 41 views
0

下面的代碼很適合服用URL路徑,如:的.htaccess modrewrite延長GET參數號碼時沒有要求

domain.com/file/value和重定向到file.php?page=value

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^/([^/]+)/.+$ 
RewriteCond %{DOCUMENT_ROOT}/%1.php -f 
RewriteRule ^([^/]+)/(.+)$ /$1.php?page=$2 [L] 

但是,下面的修改不會以我期望的方式擴展功能domain.com/file/value/datestring並重定向到file.php?page=value&date=datestring

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^/([^/]+)/.+$ 
RewriteCond %{DOCUMENT_ROOT}/%1.php -f 
RewriteRule ^([^/]+)/(.+)$ /$1.php?page=$2&date=$3 [L] 

我已經嘗試了幾種組合,沒有任何東西似乎可以工作,導致產生了一個404.

任何人都可以幫我看看我失蹤了嗎?

回答

1

您沒有在重寫模式中包含另一個捕獲。您需要爲重寫模式添加另一個捕獲組,因此有three

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1.php -f 
RewriteRule ^([^/]+)/(.+)/(.+)/?$ /$1.php?page=$2&date=$3 [L] 
+0

謝謝。增加了額外條件減去'/?'它的工作。 – Dan