3

.htaccessで書き直したいのですが、このURLがあります。

../index.php?page=details&id=123456

このような:

../detail/123456

しかし、私はこれを行う方法を本当に知りません。このURLを書き直すのを手伝ってもらえますか?または、それがどのように機能するかを理解できる簡単な例を教えてください

4

4 に答える 4

6
RewriteRule ^(.*)/([0-9]+)$ index.php?page=$1&id=$2&%{QUERY_STRING}

最初の (.*) は、"details" などの任意の文字列を選択します。([0-9]+) は数字をキャッチします。あなたの場合は「123456」です

ついに

&%{QUERY_STRING} 

追加のパラメーターがバックエンド スクリプトにも追加されるようにします。

于 2012-08-21T14:35:07.470 に答える
1

これはうまくいくはずです:

RewriteEngine On
RewriteRule ^detail/([^/]*)$ /index.php?page=details&id=$1 [L]
于 2012-08-21T14:49:18.627 に答える
0

これは、サブディレクトリにあるときに Web ページに使用する例です。

# "learn/degree/index.php?d=mathematics" shows as "learn/degree/mathematics"
RewriteRule ^learn/degree/([a-zA-Z_-]+)$ learn/degree/index.php?d=$1

それを完了するには、ページの最初に次のように書くことを忘れないでください。

RewriteBase /
RewriteEngine On

これは、私のページで使用している「完全な」.htaccess です。

#Redirect any www. to the page without it. Helps to keep user logged.
RewriteBase /
RewriteEngine On
rewriteCond %{HTTP_HOST} ^www.newfutureuniversity.org [NC]
rewriteRule ^(.*)$ http://newfutureuniversity.org/$1 [R=301,L]

Options +Indexes
Options +FollowSymlinks

# Finally working. Rewrite the user so "/student/Username" will internally be "/student/?user=Username"
RewriteRule ^student/([a-zA-Z0-9_-]+)$ student/index.php?user=$1

# Rewrite the disciplines so "learn/degree/1" will internally be "learn/degree/index.php?dis=1"
RewriteRule ^learn/degree/([1-4])$ learn/degree/index.php?dis=$1

# Rewrite the degrees so "learn/degree/mathematics" will internally be "learn/degree/index.php?d=mathematics"
RewriteRule ^learn/degree/([a-zA-Z_-]+)$ learn/degree/index.php?d=$1

# Rewrite the degrees so "learn/subject/2/5/7" will internally be "learn/subject/index.php?class=2&div=5&section=7"
RewriteRule ^learn/subject/([0-9])$ learn/subject/index.php?class=$1
RewriteRule ^learn/subject/([0-9])/([0-9])$ learn/subject/index.php?class=$1&div=$2
RewriteRule ^learn/subject/([0-9])/([0-9])/([0-9])$ learn/subject/index.php?class=$1&div=$2&section=$3

へのリンクを作成する必要があり../detail/123456、スクリプトは内部的にそれを として解釈し../index.php?page=details&id=123456ます。これを望まない場合は、リダイレクトを探しています。

于 2012-08-21T14:35:53.803 に答える
0

これを試して

<IfModule mod_rewrite.c>
    RewriteEngine on
    Options +FollowSymlinks
    # RewriteBase / add this if necessery, commented intentionally
    RewriteRule ^detail/([0-9]+)$ index.php?page=details&id=$2

</IfModule>
于 2012-08-21T14:36:35.350 に答える