:: 1.)简介::
.htacces看起来像这样:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^((?!index\.php)[^/]+)/?$ index.php?page=$1 [L]
RewriteRule ^((?!index\.php)[^/]+)/([A-Za-z0-9]+)/([0-9]+)/([0-9]+)/?$ index.php?page=$1&keyword=$2&zip=$3&range=$4 [L]
RewriteRule ^((?!index\.php)[^/]+)/([A-Za-z0-9]+)/([0-9]+)/([0-9]+)/([A-Za-z0-9]+)/?$ index.php?page=$1&keyword=$2&zip=$3&range=$4&action=$5 [L]
#ONLY 1 OF THIS RULES WORK -> ASK STACKOVERFLOW!
RewriteRule ^((?!index\.php)[^/]+)/([A-Za-z0-9]+)/([0-9]+)/?$ index.php?page=$1&ctitle=$2&cid=$3 [L]
RewriteRule ^((?!index\.php)[^/]+)/([A-Za-z0-9]+)/([0-9]+)/?$ index.php?page=$1&ptitle=$2&pid=$3 [L]
请查看最后两条规则:
RewriteRule ^((?!index\.php)[^/]+)/([A-Za-z0-9]+)/([0-9]+)/?$ index.php?page=$1&ctitle=$2&cid=$3 [L]
RewriteRule ^((?!index\.php)[^/]+)/([A-Za-z0-9]+)/([0-9]+)/?$ index.php?page=$1&ptitle=$2&pid=$3 [L]
这些规则将执行以下操作:
重写第1页 [本地或实时环境网址] / index.php?page = page1 & keyword = test& zip = 12345& range = 50
对此: [本地或实时环境网址] / 第1页 / test / 12345/50
或第2页 [本地或实时网址] /index.php?page= 第2页& keyword = test& zip = 12345& range = 50
对此: [本地或在线直播] / 第2页 / test / 12345/50
:: 2.)问题::
两个规则不能同时工作,因为预期的url参数数量相同,但参数名称不一样
:: 3.)可能的解决方案::
我可以为两个页面使用通用参数名称,因此两个页面只使用相同的参数,但我不确定在我进一步开发项目时是否曾经需要不同的参数名称。
:: 4.)所需的解决方案::
我想在每个重写规则中做出决定。 indikator可以是页面名称。我尝试了一些解决方案,但它们无法正常工作。 在哪里以及如何插入页面名称,例如'page1'和'page2',以便我可以使用两个非常相似的reWriteRules?
修改
注意:巴拿马杰克在这里问了正确的问题。在这种情况下,Pagename不是动态的。
答案 0 :(得分:1)
您的规则可以像这样简单,因为页面不是动态的。可能是最简单的例子。
RewriteRule ^page1/([^/]+)/([A-Za-z0-9]+)/([0-9]+)/?$ index.php?page=$1&ctitle=$2&cid=$3 [L]
RewriteRule ^page2/([^/]+)/([A-Za-z0-9]+)/([0-9]+)/?$ index.php?page=$1&ptitle=$2&pid=$3 [L]
答案 1 :(得分:0)
这就是我现在的工作方式:
RewriteRule ^page1/([A-Za-z0-9]+)/([0-9]+)/?$ page1&ctitle=$1&cid=$2 [L]
RewriteRule ^page2/([A-Za-z0-9]+)/([0-9]+)/?$ page2&ptitle=$1&pid=$2 [L]
有任何改进建议吗?