【问题标题】:User friendly URLS .htaccess用户友好的 URL .htaccess
【发布时间】:2012-04-25 11:17:38
【问题描述】:

我有以下代码:

RewriteRule ^fishing/([^/]*)/([^/]*) fishery.php?url=$2&region=$1 [L]
RewriteRule ^fishing/([^/]*) region.php?region=$1 [L]      

当我输入 domain.com/fishing/fife 时,它​​会显示正确的 region.php 文件。

但是,如果我在 domain.com/fishing/fife/ 中键入末尾带有 / 的内容,则它会改为加载 fishery.php 页面。我怎样才能防止这种情况发生?

其次,如果它加载为 /fishing/fife 而不是 Fishing/fife.php 对 SEO 目的是否不利?毕竟它是一个页面而不是一个目录?如果没关系,那么我更希望它没有 .php,因为它看起来更整洁。

提前致谢

【问题讨论】:

    标签: apache mod-rewrite url-rewriting seo rewrite


    【解决方案1】:

    我认为应该这样做:

    RewriteRule ^fishing/([^/]*)/([^/]+) fishery.php?url=$2&region=$1 [L]
    RewriteRule ^fishing/([^/]*)/?$ region.php?region=$1 [L]   
    

    另外,使用“目录”网址而不是页面也没有什么问题,事实上我认为这对 SEO 来说可能更好而不是更糟......

    【讨论】:

    • 非常感谢您的帮助。这很完美。我能麻烦你解释一下吗?对第二部分还有什么建议吗?
    • 我将* 更改为+(在第一种模式中),因为+ 表示1 或更多(* 表示0 或更多)所以它不会如果第二个斜线之后没有任何内容,则匹配更长的时间。对于第二个模式,我放了一个 /?? 表示前面的字符的 0 或一个),所以它匹配最后的 / 如果它在那里,然后是 $ 这只是意味着结束url,在这种情况下并不是真的有必要,但我发现表明 url 的结尾在模式中的位置是一种很好的做法,以避免意外的模式冲突
    • 再次感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2013-08-31
    • 2012-06-03
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    相关资源
    最近更新 更多