友情网址通过htaccess

时间:2016-06-06 07:57:04

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

我通过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&安培;年= 2016&放大器;当月= 05&放大器;名称=测试1 并希望: mysite.gr/2016/05/test-1.html

*我想我应该提一下,Domain NS还没有改变,我正在通过主机提供给我的临时链接......类似于:linux.41.24.23.4.server.gr ...等等

提前多多感谢!! (并且抱歉可能重复..)

1 个答案:

答案 0 :(得分:0)

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

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 - 标签等等,只要我理解有一些选项才能正常工作: 您可以使用绝对路径,或者像这样开始链接(在开头使用正斜杠):

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

它的工作方式就像我认为的绝对路径,因为文件正在查看根文件夹(例如对我来说是localhost - 我在本地使用xampp工作)

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