2

問題

50 以上の StackOverflow の投稿を見て、htaccess ファイルの多くの順列を試した後も、まだ何もしません。

私が試したこと

この Web サイトを使用して 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 に答える