【问题标题】:Create my own tinyurl using htaccess rewrite使用 htaccess rewrite 创建我自己的 tinyurl
【发布时间】:2010-08-27 15:35:44
【问题描述】:

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

mydomain.com/abCdE

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

提前致谢!

附:我正在使用 Zend 框架

斯特凡诺

【问题讨论】:

  • 您能否澄清一下:mydomain.com/foo 应该始终重定向到 mydomain.com/controller/view/parameter/foo,还是重定向到 mydomain.com/something/else/entirely/bar
  • 并非总是如此,它会重定向到 mydomain.com/something/else/entirely/bar。非常感谢您的回复!

标签: .htaccess


【解决方案1】:

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

    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]

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

【讨论】:

    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2010-09-16
      • 1970-01-01
      • 2017-11-08
      • 2012-07-21
      • 2015-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-30
      相关资源
      最近更新 更多