Apache 用户友好的URL.htaccess
我有以下代码:Apache 用户友好的URL.htaccess,apache,mod-rewrite,url-rewriting,seo,rewrite,Apache,Mod Rewrite,Url Rewriting,Seo,Rewrite,我有以下代码: RewriteRule ^fishing/([^/]*)/([^/]*) fishery.php?url=$2®ion=$1 [L] RewriteRule ^fishing/([^/]*) region.php?region=$1 [L] 当我输入domain.com/fishing/fife时,它会显示正确的region.php文件 但是,如果我在最后键入domain.com/fishing/fife/,它将加载fishing.php页面。我怎样才
RewriteRule ^fishing/([^/]*)/([^/]*) fishery.php?url=$2®ion=$1 [L]
RewriteRule ^fishing/([^/]*) region.php?region=$1 [L]
当我输入domain.com/fishing/fife时,它会显示正确的region.php文件
但是,如果我在最后键入domain.com/fishing/fife/,它将加载fishing.php页面。我怎样才能防止这种情况
第二,如果加载为/fishing/fife而不是fishing/fife.php,对SEO目的是否有害??毕竟它是一个页面而不是一个目录?如果这不重要,那么我更希望它没有.php,因为它看起来更整洁
提前谢谢我想这应该可以做到:
RewriteRule ^fishing/([^/]*)/([^/]+) fishery.php?url=$2®ion=$1 [L]
RewriteRule ^fishing/([^/]*)/?$ region.php?region=$1 [L]
另外,用“目录”url代替页面也没什么错,事实上,我认为这对SEO来说可能更好而不是更糟…非常感谢您的帮助。这很好用。麻烦你解释一下好吗?还有关于第二部分的建议吗?我将
*
更改为+
(在第一个模式中),因为+
表示1-或更多(*
表示0-或更多),所以如果第二个斜杠后没有任何内容,它将不再匹配。对于第二个模式,我将一个/?
(?
表示前面的0或1个字符),因此它在结尾处匹配一个/
,如果它在那里,然后是一个$
,它只是表示url的结尾,在这种情况下,这并不是必须的,但我发现指出url结尾在模式中的位置是一种很好的做法,以避免意外的模式冲突再次感谢您的帮助。