[英]how can i solve this htaccess problem
我有以下動態網址...
http://www.mydomain.com/v/dynamicvaluehere
我的htaccess中有以下內容
RewriteRule ^v/(.*)$ script.php?name=$1 [NC,L]
它現在工作正常,我想進一步創建
http://www.mydomain.com/v/dynamicvaluehere/Page-dyanamicnumberhere.html
我的htaccess中有以下內容
RewriteRule ^v/(.*)/Page-(.*)\.html$ script.php?name=$1&number=$2 [NC,L]
但是它不起作用,請幫忙...另外請注意,如上所述,第二個提及的動態值是samy,但是僅進一步包含dynamicnumber ...
我認為問題可能出在您使用通配符。 如果您的.htaccess如下所示:
RewriteRule ^v/(.*)$ script.php?name=$1 [NC,L]
RewriteRule ^v/(.*)/Page-(.*)\.html$ script.php?name=$1&number=$2 [NC,L]
那么就不會有模式到達第二個參數,因為(.*)/Page-(.*)\\.html
實際上將首先位於(.*)
。
您可以將通配符優化為以下形式:
RewriteRule ^v/([A-Za-z0-9].*)$ script.php?name=$1 [NC,L]
RewriteRule ^v/([A-Za-z0-9].*)/Page-([0-9].*)\.html$ script.php?name=$1&number=$2 [NC,L]
甚至嘗試將語句的順序切換為:
RewriteRule ^v/(.*)/Page-(.*)\.html$ script.php?name=$1&number=$2 [NC,L]
RewriteRule ^v/(.*)$ script.php?name=$1 [NC,L]
由於第一個規則的貪婪性質,因此永遠不會達到您的第二個規則。 您可以將其置於第一條規則之上,也可以使第一條規則更加具體。
請嘗試以下操作:
RewriteRule ^v/(.+)/Page-(.+)\.html$ script.php?name=$1&number=$2 [NC,L]
RewriteRule ^v/(.*)$ script.php?name=$1 [NC,L]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.