2010-08-27 30 views
2

创建我自己的TinyURL的,我想创建我的htaccess档案国防部重写,将能够改变这一点:使用htaccess的重写

mydomain.com/abCdE

这样: mydomain.com/controller/view/parameter/abCdE

在此先感谢!

P.S.我使用Zend框架

斯特凡诺

+0

你能说清楚:应该mydomain.com/foo总是重定向到'mydomain.com/controller/view/parameter/foo',还是可以重定向到'mydomain.com/something/else/entirely/bar '? – fredley 2010-08-27 15:42:29

+0

并不总是,它会重定向到mydomain.com/something/else/entirely/bar。非常感谢您的回复! – 2010-08-27 15:52:52

回答

2

您可以使用mod_rewrite重定向所有(或几乎所有的)请求一个PHP文件,并使其做的工作:

RewriteEngine on 
RewriteRule (.*) /parser.php?q=$1 

如果你想留下一些页面,你可能会把条件:

RewriteEngine on 

# Makes root of your site not to redirect to parser: 
RewriteCond %{REQUEST_URI} !^/$    

# Same for mypage.php 
RewriteCond %{REQUEST_URI} !^/mypage.php$ 

# testdir and all files in it are not redirected to parser 
RewriteCond %{REQUEST_URI} !^/testdir/ 

RewriteRule (.*) /controller/view/parameter$1 
3

我已经创造了这样的事情在过去。这是你想要什么:(!*包括任何额外_GET参数)

RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule (.*) /parser.php?q=$1 [L,QSA] 

这样,每一个现有的文件和目录在您的网站仍然可以工作,并且每一件事情都不会被太过去了。

如果你把这个.htaccess文件里面,重写规则更改为

RewriteRule (.*) parser.php?q=$1 [L,QSA] 

这应该彻底地回答你的问题。