我正在尝试重写以下3个网址,以便翻译成正确的网页。
highscore.php在我的主目录
www.domain.com/clan/
www.domain.com/highscore.php
www.domain.com/clan/Halos
www.domain.com/highscore.php?clan=Halos
www.domain.com/clan/Halos/Cooking
www.domain.com/highscore.php?clan=Halos&view=Cooking
我的.htaccess中有以下内容:
RewriteEngine On
#RewriteBase /
RewriteRule ^clan/([^/]*)$ /highscore.php?clan=$1&view=$2 [L]
这成功映射了以下网址:
www.domain.com/clan/Halos
到
www.domain.com/highscore.php?clan=Halos
以下网址转到带有空'clan'参数
的highscore.php页面 www.domain.com/clan/
正在映射到
www.domain.com/highscore.php?clan=
我正试图让它映射到
www.domain.com/highscore.php
当我去
www.domain.com/clan/Halos/Cooking
它只能识别第一个参数'Halos'而不是第二个参数'Cooking'?它需要我:
www.domain.com/highscore.php?clan=Halos
非常困惑,我需要一些方向来解决我正确和/或错误的问题。
答案 0 :(得分:1)
RewriteEngine On
#RewriteBase /
#Rewrite base path
RewriteRule ^clan/$ /highscore.php [L]
#Rewrite clan path
RewriteRule ^clan/([^/]*)$ /highscore.php?clan=$1 [L]
#Rewrite view path
RewriteRule ^clan/([^/]*)/([^/]*)$ /highscore.php?clan=$1&view=$2 [L]
答案 1 :(得分:0)
您的重写规则在表达式中没有第二个提取部分,因此只提取一个参数。以下是如何提取第二个参数:
RewriteRule ^clan/([^/]*)/([^/]*)$ /highscore.php?clan=$1&view=$2 [L]
现在你在这里提取两个部分(用括号表示)。