我想将detail.php?id = 4更改为detail / 4,但我的.htaccess文件无效

时间:2016-09-11 19:05:25

标签: php .htaccess

这是我的.htaccess文件看起来像

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-s

RewriteRule ^home$ index.php [NC,L]
RewriteRule ^detail$ detail.php [NC,L]

RewriteRule ^detail/([0-9a-zA-Z]+)$ detail.php?id=$1 [NC,L]

2 个答案:

答案 0 :(得分:0)

您正在谈论使用.htaccess在内部重写您的网址并将其适当地发送到您的应用程序。

您应该尝试使用这个特定的.htaccess示例来完成您正在寻找的内容:

    RewriteEngine On

    # external redirect from actual URL to pretty one
    RewriteCond %{THE_REQUEST} /detail(?:\.php)?\?id=([^\s&]+) [NC]
    RewriteRule ^ detail/%1? [R=302,L,NE]
    # internal forward from pretty URL to actual one
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^detail/([^/]+)/?$ detail.php?id=$1

编辑:

答案 1 :(得分:0)

你在htaccess中正好相反,将detail / 4重定向到detail.php?id = 4。在你的问题中,你说?id = 4到/ 4。

交换,编辑和测试