3

私のウェブサイト用に書いた mod 書き換えルールに問題があります。ページの URL が以前と同じようにロードされているため、何も変わっていないようです。ありがとうございます。

ルールを書き換える

RewriteEngine On
RewriteRule ^([^/]*)/$ /index.php?art_id=$1 [L]

URL

http://www.test.com/index.php?art_slug=test

望ましい結果

http://www.test.com/test
4

3 に答える 3

2

mod_rewrite と .htaccess を有効にしてからhttpd.conf、このコードをディレクトリの.htaccess下に配置します。DOCUMENT_ROOT

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

# to externally redirect from /index.php?art_slug=test to /art_slug/test
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+/(?:index\.php|)\?([^=]+)=([^\s]+) [NC]
RewriteRule ^ /%1/%2? [R=302,L]

# to internally forward from /art_slug/test to /index.php?art_slug=test
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([^/]+)/(.+)$ /index.php?$1=$2 [L,QSA]

正常に動作していることを確認したら、 に置き換えR=302ますR=301R=301mod_rewrite ルールをテストしている間は (Permanent Redirect) を使用しないでください。

于 2013-05-22T03:16:00.977 に答える
0
RewriteEngine On
RewriteRule (.*)/$ search.php?keyword=$1

動作するはずです。:)

于 2016-04-01T12:42:36.140 に答える
0
RewriteEngine On 
RewriteBase / 
RewriteRule ^(.*)$ index.php?art_id=$1 [L]

動作するはずです。:)

于 2013-05-22T02:49:54.220 に答える