首页 > 解决方案 > 如何通过 htaccess 重写 URL?

问题描述

如何重写以下网址?

http://www.planethomes.in/project-detail.php?city=mumbai&project=Puraniks-Tokyo-Bay-Phase-1

我想重写为

http://www.planethomes.in/property/mumbai/Puraniks-Tokyo-Bay-Phase-1

但它没有发生。我的 .htaccess 文件如下

Options -Indexes
Options +FollowSymlinks
RewriteEngine On

RewriteRule ^property/([_0-9a-z-]+)/([_0-9a-z-]+) project-detail.php?city={R:1}&project={R:2}

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

标签: php.htaccess

解决方案


您可以使用%{QUERY_STRING}

RewriteEngine On
RewriteCond %{QUERY_STRING} city=(.+)&project=(.+)$ [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/property/%1/%2 [R=301,L,QSD]

然后在内部重写 URL 并添加以下内容:

RewriteRule ^/property/([^/]*)/([^/]*) /project-detail.php?city=$1&project=$2 [L]

确保在测试之前清除缓存。您会注意到我使用R=301的是永久重定向,我建议R=302在测试时使用,因为这是临时重定向。


推荐阅读