2012-02-22 181 views
4

我准备开发一个网站,其结构如下。URL重写.htaccess

我是网址重写的新手,想知道处理这个问题的最佳方法。

http://domain.com     index.php 
http://domain.com/about    about.php 
http://domain.com/agencies   agencies.php 
http://domain.com/contact   contact.php 
http://domain.com/publisher   publisher.php 
http://domain.com/publisher/sign_up publisher_signup.php 
http://domain.com/agencies/sign_up agencies_signup.php 
http://domain.com/agencies/login  login.php 
http://domain.com/advertiser   advertiser.php 
http://domain.com/advertiser/sign_up advertiser_signup.php 
http://domain.com/advertiser/login login.php 

什么是最有效的htaccess rewriterule?

我应该手动输入每一行的重写还是有一些很好的搜索/替换我可以使用?

我想长期斜线的数量在URL中可能是最4 例如

http://domain.com/area/sub_area/sub_area2/sub_area3 

任何帮助将不胜感激。

回答

2

我很抱歉,但你的“URL”转型并不均匀(=这是不可能的“概括”,因为它们不共享完全相同相同的原则),所以这里的最好的,我可以这样做:

RewriteEngine On 
^/?$ index.php [NC,QSA,L] 
^/?about$ about.php [NC,QSA,L] 
^/?(agencies|contact|publisher|advertiser)$ /$1.php [NC,QSA,L] 
^/?(publisher|agencies|advertiser)/sign_up$ /$1_signup.php [NC,QSA,L] 
^/?(publisher|agencies|advertiser)/login$ /login.php [NC,QSA,L] 

但是如果你想“同质化”的东西,不完全适合与你的要求,你可能有这样的“干净”的规则:

RewriteEngine On 
^/?$ index.php [NC,QSA,L] 
^/?about$ about.php [NC,QSA,L] 
^/?(agencies|contact|publisher|advertiser)$ /$1.php [NC,QSA,L] 
^/?(agencies|contact|publisher|advertiser)/sign_up$ /$1_signup.php [NC,QSA,L] 
^/?(agencies|contact|publisher|advertiser)/login$ /login.php [NC,QSA,L] 

如果你真的要集中一切,你可以做(=将类型传递给php文件):

RewriteEngine On 
^/?$ index.php [NC,QSA,L] 
^/?about$ about.php [NC,QSA,L] 
^/?(agencies|contact|publisher|advertiser)$ /$1.php [NC,QSA,L] 
^/?(agencies|contact|publisher|advertiser)/(sign_up|login)$ /$2.php?type=$1 [NC,QSA,L] 
+0

谢谢奥利弗。一个变化是^ /?about $ about.php,否则就像一个冠军 – justanotherdeveloper 2012-02-22 14:52:10

+0

我的荣幸=)我已经纠正 – 2012-02-22 21:12:37