问题
在查看了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]
我想要实现的目标
更改此网址: 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解析查询字符串。希望我仍然能够做到这一点来获得州和城市。
请帮忙。 感谢。
答案 0 :(得分: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]