4

次のURLからURLを書き直したい:

http://mysite.com/index.php?node=home&photoID=10

に:

http://mysite.com/home/10

現在、

http://mysite.com/home

私が使う

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

しかし、私が使おうとすると

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

ページが正しく読み込まれていないようです。ページのスタイルが設定されていません。

(また、私の.htaccessファイルの先頭には次のものがあります。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

mysite.com/homeにアクセスすると、404が見つかりませんと表示されます。サブページが常に存在するとは限らない場合、どうすればよいですか?

4

2 に答える 2

3

まず、.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]

<head>次に、ページの上部のとの間にこの行を追加してください</head>

<base href="http://mysite.com/">
于 2012-08-24T09:25:23.723 に答える
0

<base>相対URLにURIベースがどこにあるかを知らせるためにタグを追加する必要があります。URIパスをからに変更したので/home/home/10相対リンクのベースはに変わります/home。これをページのヘッダーに追加する必要があります。

<base href="/">
于 2012-08-24T02:34:17.817 に答える