1

3 ページのみの動的 URL を持つサイトがあります。そのために、私はphp関数に行きません。そこで、.htaccess 書き換えルールを使用することにしましたが、まだ運がありません。

これは私の実際のURLです:/index.php?mode=service&inid=1

これを次のように書き直します。/home-theater

私はそれを自分で試し、次のコードで試します:

RewriteEngine On 

RewriteCond %{HTTP_HOST} !^www\.mysite\.com.au$ [NC]
RewriteRule ^(.*)$ http://www.mysite.com.au/$1 [L,R=301]

Options +FollowSymLinks
DirectoryIndex index.php

RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.mysite.com.au/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^home-theater/?$ index.php?mode=service&inid=1 [L,NC,QSA]

私はまだそれを機能させることができません。

また、このコードの前にwwwリダイレクトへのindex.phpを書いているので、問題が発生するかどうかは推測できます。index.php から www サイトへのリダイレクトは完全に機能しますが、これは機能しません。

4

1 に答える 1

1

L次のようにフラグを使用します。

RewriteRule ^home-theater/?$ index.php?mode=service&inid=1 [L,NC,QSA]

これにより、リクエストが内部的にindex.php.

また、これが機能しない場合は、質問に完全な .htaccess を提供してください。

更新: ここで .htaccess を変更しました。ブラウザのキャッシュをクリアしてから試してみてください:

DirectoryIndex index.php

Options +FollowSymLinks -MultiViews
RewriteEngine On 
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\.mysite\.com.au$ [NC]
RewriteRule ^(.*)$ http://www.mysite.com.au/$1 [L,R=301]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^ http://www.mysite.com.au/ [R=301,L]

RewriteRule ^home-theater/?$ index.php?mode=service&inid=1 [L,NC,QSA]

RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ /index.php [L]
于 2012-09-05T18:44:31.037 に答える