使用htaccess重写创建我自己的tinyurl

时间:2010-08-27 15:35:44

标签: .htaccess

我想在我的htaccess文件中创建一个mod重写,可以改变这个:

mydomain.com/abCdE

到此: mydomain.com/controller/view/parameter/abCdE

提前致谢!

P.S。我正在使用Zend Framework

斯特凡诺

2 个答案:

答案 0 :(得分:3)

我过去曾创造过这种东西。这就是你想要的:

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

这样,您网站上的每个现有文件和目录仍然可以使用,其他所有内容(*包括任何额外的_GET参数!)也将被传递。

如果您将其放在.htaccess文件中,请将RewriteRule更改为

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

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

答案 1 :(得分: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