0

私はこの URL
www.mydomain.com/profile.php?id=524170354d5a6 を 持っていて、それを次のような分かり
やすい URL に変換したい:
www.mydomain.com/profile/524170354d5a6
私の .htaccess は私のフォルダ プロジェクト (www/project->.htacces) 内にあります。これはうまく配置されていますか? または、(www/.htaccess) にある必要があります。私の .htaccess には次のコードが含まれています。

RewriteEngine On
RewriteRule ^profile/(\d+)*$ /profile.php?id=$1

インターネットでいくつかの例を見ましたが、どれも機能しません。ID に数字と文字が含まれている可能性もあります。または私の正規表現が間違っていますか?

4

2 に答える 2

0

コード.htaccessは にある必要がありますDOCUMENT_ROOT/.htaccess。また、コードを少し変更します。

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteRule ^profile/([0-9]+)/?$ /profile.php?id=$1 [L,QSA,NC]
于 2013-09-28T13:23:20.513 に答える
0

ファンシーな URL を作成するには、「醜い」URL を「ファンシーな」URL に変換するルールが必要です。これは、いわゆる外部リダイレクトによって行われます。サーバーが何をすべきかを知るために、内部で「ファンシー」URLを「醜い」URLに変える別のルールが必要です。ENDフラグ (Apache 2.3.9 以降で使用可能) またはTHE_REQUESTトリックを使用してこれを防止しないと、永久ループが作成されます。

#Rewrite fancy url to ugly url internally and stop rewriting completely
#RewriteRule ^profile/(.*)$ profile.php?id=$1 [END]

#Internal rewrite pre-2.3.9
RewriteCond %{THE_REQUEST} ^GET\ /profile/(.*)\ .*$
RewriteRule ^ profile.php?id=%1 [L]

#Redirect the ugly url to the fancy url, so that the user will always see the fancy url in the address bar
RewriteCond %{QUERY_STRING} ^id=(.*)$
RewriteRule ^profile\.php$ profile/%1 [R,L]

(このコンピューターではこれをテストできません)

于 2013-09-28T13:24:03.023 に答える