隐藏URL htaccess的一部分

时间:2014-06-04 15:47:41

标签: php .htaccess mod-rewrite rewrite

目标:

  1. 用户登陆显示最新10篇文章的网站(此处没有问题)。
  2. 用户使用表格中的href链接点击一篇文章的标题:

    <a href='"."article.php/".$type."/".$id."/".$web_title."'>".$title."</a>

  3. 来自任何$type的所有链接都会定向到article.php
  4. article.php应根据数据库中的$id检索信息动态构建。
  5. 我的htaccess文件中已经重写了这个URL:

    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/article/?
    RewriteCond %{REQUEST_FILE} !-f
    RewriteCond %{REQUEST_FILE} !-l
    RewriteRule ^(.*)$ article.php?post_type=$1&post_id=$2&post_name=$3 [QSA,L]
    

    当用户通过第2点中描述的链接访问http://example.org/article.php/news/1/first-article-test时,会生成网址:article.php

    我尝试从上面的网址中删除article.php部分,因此它看起来像这样:  http://example.org/news/1/first-article-test

    article.php页面接收变量时,它会根据链接传递的$id从数据库中提取其他数据,但是URL正在显示article.php/...

1 个答案:

答案 0 :(得分:0)

保持这样的规则:

RewriteEngine On

RewriteCond %{REQUEST_FILE} !-f
RewriteCond %{REQUEST_FILE} !-l
RewriteCond %{REQUEST_URI} !^/article\.php [NC]
RewriteRule ^(.+)$ /article.php/$1 [L]

它会让你的链接为

http://example.org/news/1/first-article-test