1

だから私は .htaccess ファイルから通常のものを求めています。www.example.com/article.php?title=my_title は www.example.com/article/my_title に置き換える必要がありますが、うまく動作しないようです。今のところ、.php を削除することができますが、それが問題の一部であると思われます。(また、http://example.comからhttp://www.example.comに移動します)これが私の .htaccess ファイルです

Options +FollowSymLinks -MultiViews 
rewriteengine on

## this is the piece that is not working
RewriteRule ^title/(.*) article.php?arr=title/$1

rewritecond %{HTTP_HOST} ^example.com$
rewriterule ^example\/(.*)$ "http\:\/\/www\.example\.com\/$1" [R=301]

RewriteBase /

## Hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]

## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]

## Error document (needs to have a 404 page created)
ErrorDocument 404 http://www.example.com/
4

1 に答える 1

1

これらの特定のルーティング ルールは、php ファイルに一般的に適用されるルールのに追加する必要があります。したがって、あなたのすぐ下にrewriteengine on、次を追加します。

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/article\.php\?title=([^&\ ]+)
RewriteRule ^ /article/%1? [L,R=301]

RewriteRule ^/?article/(.*)$ /article.php?title=$1 [L]

次に、残りのルール。

于 2012-11-01T01:50:06.520 に答える