簡體   English   中英

我該如何解決htaccess問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM