7

.htaccess で SEO フレンドリーなマスク リライトを作成しようとしています。htaccess ファイルは localhost と私の個人用サーバーでは問題なく動作しますが、残念ながら GoDaddy のサーバーでは動作しないようです。それがすでに問題になっていることは承知していますが、ホストとして Godaddy を使用することに決めたクライアントのために働いています。

問題は、書き換えにより、書き換えられたクエリ文字列を内部に保持するのではなく、ブラウザーの URL バーに表示するリダイレクトが強制されているように見えることです。例えば。

ルール:

RewriteRule ^/?([a-zA-Z0-9-_/]*)$ /index.php?loadPage=$1&mode=cms [L,QSA]

リンク:/imagesにリダイレクト/images/?loadPage=images&mode=cms

/images/これは、ブラウザの場合と同様に「すべき」です。以下の短いコードをコピーし.htaccessました。IP は開発ブロック用に変更されています

<Files .htaccess>
    deny from all
</Files>

Options -MultiViews +FollowSymlinks -Indexes

RewriteEngine On
RewriteBase /

# Stop Old redirection from block below
RewriteCond %{REQUEST_URI} "/old/"
RewriteRule (.*) $1 [L]

# Under construction Redirect
RewriteCond %{REMOTE_ADDR} !^0.0.0.0
RewriteCond %{REQUEST_URI} !^/?old/
RewriteRule ^/?(.*) “/old/$1″ [L,QSA]

#Admin utilities rewrite
RewriteRule ^/?admin/?(.*)$ /index.php?loadPage=$1&mode=backend [L,QSA]

#CMS/Frontend rewrites -- this one is failing
RewriteRule ^\/?([a-zA-Z0-9-_]+)\/?$ /index.php?loadPage=$1&mode=cms [QSA,L]

潜在的な注意のヒントは、表示された URL が/images/?query_string, NOTindex.php?query_stringであるため、完全なリダイレクトを行っていないことです。ただし、外部リクエストはページ リクエストから 301 レスポンスを受信して​​います。

4

2 に答える 2