Apache友好的网址

时间:2010-05-04 23:06:37

标签: apache .htaccess url-rewriting

我有一个用PHP编写并在Apache上运行的小型CMS系统。此CMS系统使用/生成的URL的格式为:

/display.php?PageID=xxx其中xxx只是一些整数。如您所见,这些URL对用户和搜索引擎都不是很友好。

我相信使用mod_rewrite(或类似的东西)和.htaccess文件我应该能够配置Apache进行URL重写。我以前搜索过有关这方面的信息,但我没有找到任何简单的方法来执行此操作,它总是涉及到正则表达式,我不是很熟悉。

由于有问题的网站非常简单,只有5-10个不同的页面,我真的希望能够对配置进行硬编码,而不需要任何特殊规则或正则表达式。

我只想将友好的URL映射到实际的URL,可能是这样的:

/about = /display.php?PageID=44
/products = /display.php?PageID=34

是否可以像这样基本的方式配置mod_rewrite插件?

有人可以解释最简单的方法吗?向我解释,好像我还是个孩子: - )

提前致谢!

3 个答案:

答案 0 :(得分:2)

很好地放置像

这样的东西
RewriteEngine on

RewriteRule ^about$  ./display.php?PageID=44
RewriteRule ^products$ ./display.php?PageID=34
.htaccess中的

文件不应该是我认为的大问题......

答案 1 :(得分:1)

URL Rewriting for Beginners是我最喜欢的介绍文章,它应该涵盖您正在寻找的内容。实际上,您编写.htaccess文件的第一个实际示例几乎与您想要的相同。

答案 2 :(得分:0)

另一种方法是通过动态php文件过滤,页面映射或路由策略,如drupal code igniter .... 你的网址就像 my-pages / about.html - > Display.php的?PAGEID = 44 my-pages / products.html - > Display.php的?PAGEID = 34

等等

这里有.htaccess文件的建议,并使用此策略过滤操作

--- .htaccess文件----

RewriteRule ^ my-pages /(。)。html $ MY-URL.php [QSA,L,E]

---------------- MY-URL.php ---------

<?php 

$PREFIX = 'my-pages/'; //--- not used 
$mapping=array(
        'about' => 44,
        'products' => 34
);
$pathinfo=   pathinfo( $_SERVER['REQUEST_URI'] );
/*  $pathinfo['dirname']  ->  my-pages 
    $pathinfo['basename'] -> ???.html
    $pathinfo['extension']->  .html
*/
$page = substr( $pathinfo['basename'] ,0,-5);


if( isset( $mapping[$page] ){
         //  ---- redirect or include
         YUOR CODE HERE 
}  
else {
        //--- error 404
          YUOR CODE HERE  
}


?>