【问题标题】:php url routing questionphp url 路由问题
【发布时间】:2010-05-04 23:09:10
【问题描述】:

http://mysite.com/songs/company-name/song-name

我想把它重定向到

http://mysite.com/songs/index.php?name=company-name&song=song-name

我阅读了一些关于 mod_rewrite 的文章,但实际上我无法完全理解,如果你能帮助我,我将不胜感激。

谢谢

编辑:mod 重写已启用

【问题讨论】:

    标签: php mod-rewrite url-routing


    【解决方案1】:

    检查您的 apache 安装是否启用了 mod_rewrite。

    以最简单的形式,完成您想做的事情的规则是:

    在您的 .htaccess 中

    Options +FollowSymLinks
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^mysite.com$
    RewriteRule ^/?$ http://mysite.com [R=301,L]
    
    RewriteRule songs/(.*)/(.*)$ songs/index.php?name=$1&song=$2
    

    但请阅读 apache 文档 http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html 并验证您的配置,在这里您还可以找到一些有用的东西 http://perishablepress.com/press/2006/01/10/stupid-htaccess-tricks/#redirects

    希望对您有所帮助。

    【讨论】:

    • 谢谢,但这会导致“此网页存在重定向循环。”当我去“mysite.com”时
    【解决方案2】:
    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^([\d\w]+)/([\d\w]+)$ test.php?name=$1&song=$2 [L]
    

    【讨论】:

      【解决方案3】:
      RewriteEngine On
      RewriteRule   ^/songs/([\d\w\-]+)/([\d\w\-]+)$   test.php?name=$1&song=$2 [L]
      

      有时打开日志记录会有所帮助:

      RewriteLogLevel 4
      RewriteLog /home/www/mysite.com/log/rewrite.log
      

      【讨论】:

        猜你喜欢
        • 2017-03-26
        • 2017-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-16
        相关资源
        最近更新 更多