【问题标题】:Friendly URLs via htaccess通过 htaccess 的友好 URL
【发布时间】:2016-06-06 07:57:03
【问题描述】:

我通过 htaccess 文件阅读了很多关于友好 URL 的教程和文章,但可能我遗漏了一些东西。因此,我有一些问题要理解。如果有人可以帮助我清除这些问题,请! 首先,在向 htaccess 文件添加任何规则之前, 1. 我是否应该在文件中包含类似 article.php?article_id=1 之类的链接或我想要的友好网址,例如:2016/05/article_name ??? 2. 我发现我通过另一篇文章链接到这里,它提供了一个网络工具,以便给出 htaccess 文件的规则:http://www.generateit.net/mod-rewrite/index.php 所以,我放置了我真正的“丑陋”链接,并给了我正确的规则来写入 htaccess 文件。

现在,我已经上传了 htaccess 文件,并且正在导航到我的网站。如果我有“丑陋”的链接,我可以正确地看到所有内容!当我手动按下友好的网址时,出现了问题: 首先,我看不到网站的css和javascripts文件。我根据一篇文章放置了绝对路径,所以我想我可以接受(对吗?)。 其次,如果我按下一个链接,比如说徽标,为了返回主页,它会保留 htaccess 的规则并将我导航到“未找到页面”.. 因为链接是这样的:mywebsite.gr/ 2016/05/index.php,但是年月实际上并不存在……

我想有一个规则,以保持相同的文章链接(我对其他链接、类别、菜单等没有问题......只是文章的链接)。我现在拥有的链接是(毕竟我看到并理解了): article.php?article_id=1&year=2016&month=05&name=test-1 并希望拥有: mysite.gr/2016/05/test-1.html

*我想我应该提到域 NS 还没有改变,我正在处理主机提供给我的临时链接.. 类似:linux.41.24.23.4.server.gr ...等等

提前非常感谢! (对可能的重复感到抱歉..)

【问题讨论】:

    标签: apache .htaccess mod-rewrite url-rewriting


    【解决方案1】:

    我想我找到了一个解决方案...不确定它是否是最好的..

    DirectoryIndex index.html index.php

    <IfModule mod_rewrite.c>
    Options -MultiViews
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([0-9]{4})/([0-9]{2})/([a-z0-9\-]+)\/?.html$ category.php?file=$1&year=$2&month=$3&art_name=$4 [NC,L]
    </IfModule>
    

    为了以这种方式显示我的链接:

    mydomain.com.gr/2016/06/this-is-an-article.html
    

    当然,在我的网站中,我切开了来自我的数据库的文章名称,以便添加中间斜杠并将任何其他符号替换为“无”:

    $art_name = "this is an article!";
    $art_name = str_replace('!','',$art_name);
    $art_name = str_replace(',','',$art_name);
    $art_name = str_replace(' ','-',$art_name);
    

    我网站的最后一个链接是:

    <a href="<?php echo $year.'/'.$month.'/'.$art_name.'.html'; ?>">click me</a>
    

    此外,关于其他链接:CSS - Js - a 标签等,只要我理解有一些选项可以正常工作: 您可以使用绝对路径,或者像这样开始您的链接(开头带有正斜杠):

    <link href="**/**main.css" rel="stylesheet" type="text/css" />
    

    我相信它就像一个绝对路径一样工作,因为文件正在查看根文件夹(例如对我来说是 localhost - 我在本地使用 xampp)

    我相信我帮助了有同样问题的人..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-31
      • 2012-06-03
      • 2020-06-09
      • 2015-12-16
      • 2011-05-29
      • 2013-01-22
      • 1970-01-01
      相关资源
      最近更新 更多