0

現在、URL を example.com?node=home から example.com/home に、example.com?node=gallery&id=56 から exmaple.com/gallery/56 に書き換える htaccess ルールがあります。また、リンク、css スタイルシート、写真などのディレクトリ パスが修正され、Web ページ自体が正しくリンクされています。これですべてが正常に機能するようになりました。example.com などにアクセスしようとすると問題が発生します。 /filename.jpg の場合、filename.jpg は、ディレクトリに移動するのではなく、読み込もうとするページであると考えています。では、どうしてそうなったのでしょうか。どうすればこれを修正でき、htaccess ルールを正常に機能させることができますか?

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

## If the request is for a valid directory
RewriteCond %{REQUEST_FILENAME} -d [OR]
## If the request is for a valid file
RewriteCond %{REQUEST_FILENAME} -f [OR]
## If the request is for a valid link
RewriteCond %{REQUEST_FILENAME} -l
## don't do anything
RewriteRule ^ - [L]

RewriteRule ^([^/]+)/([^/]+)/?$ index.php/?node=$1&id=$2 [L,QSA]

RewriteRule ^([^/]+)/?$ index.php/?node=$1 [L,QSA]

今、私は index.php ページにも持っています:

<base href="http://www.mysite.com">
4

1 に答える 1

0

コードを次のように変更してみてください。

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

## If the request is for a valid directory
RewriteCond %{REQUEST_FILENAME} -d [OR]
## If the request is for a valid file
RewriteCond %{REQUEST_FILENAME} -f [OR]
## If the request is for a valid link
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^([^/]+)/([^/]+)/?$ index.php/?node=$1&id=$2 [L,QSA]

## If the request is for a valid directory
RewriteCond %{REQUEST_FILENAME} -d [OR]
## If the request is for a valid file
RewriteCond %{REQUEST_FILENAME} -f [OR]
## If the request is for a valid link
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^([^/]+)/?$ index.php/?node=$1 [L,QSA]
于 2013-07-07T07:33:09.457 に答える