2

问题

在查看了 50 多篇 StackOverflow 帖子并尝试了我的 htaccess 文件的许多排列之后,它仍然什么也没做。

我尝试过的

使用此网站生成我的 htaccess 文件:http ://www.generateit.net/mod-rewrite/

在我的 httpd.conf 文件中设置 AllowOverride All 并重新启动 Apache。

我当前的 HTACCESS 文件

位于根目录中。

RewriteEngine On
RewriteBase /
RewriteRule ^find-a-local-doctor/([^/]*)/([^/]*)$ /find-a-local-doctor/?state=$1&city=$2 [L]

我想完成什么

更改此 URL: http ://www.md1network.com/find-a-local-doctor/?state=FL&city=Tampa

对此: http ://www.md1network.com/find-a-local-doctor/FL/Tampa

此外

由于实际工作的文件是:http://www.md1network.com/find-a-local-doctor/index.php,我需要能够用 PHP 解析查询字符串。希望我仍然能够做到这一点,以获得州和城市。

请帮忙。谢谢。

4

1 回答 1

1

您现有的规则看起来不错,但您需要一个额外的外部重定向规则才能进行反向。将此规则放在现有规则之前(就在下面RewriteBase /)。

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(find-a-local-doctor)/(?:index\.php)?\?state=([^&]+)&city=([^&\s]+) [NC]
RewriteRule ^ /%1/%2/%3? [R=301,L]
于 2013-09-24T17:19:57.120 回答