0

.htaccess(mod rewrite)を使用して、見栄えの良いSEO対応のURLを作成しています。ユーザーが自分のアカウントのパスワードを変更できるフォームがあります。Jqueryを使用して、ユーザーのパスワードが変更され、3秒以内にページがログインページにリダイレクトされるという情報をユーザーに提供します。

setTimeout(function() {window.location.replace("http://localhost/projects/v4/login/#login");} , 3000);

何らかの理由で、このコードはhttp://localhost/projects/v4/#loginの代わりににリダイレクトされhttp://localhost/projects/v4/login/#loginます。質問の冒頭で、SEOに適したURLについて説明しました。<head></head>要素間でベースURLを使用しているため、この問題が発生すると思い始めました。

<base href="http://localhost/projects/v4/" />

この問題の解決策はありますか、それとも私が間違っていて、この問題はまったく異なる問題が原因で発生しますか?

.htaccess

<IfModule mod_rewrite.c>

Options +FollowSymlinks
RewriteEngine on

RewriteBase /projects/v4/

RewriteRule ^index/ index.php [L]

# MEMBERS
ReWriteRule ^login/(.*) ?module=login&a=$1 [L]

# MODULES
RewriteRule ^([^/\.]+)$ ?module=$1 [L]

# LAST ONES
#RewriteCond %{THE_REQUEST} \?(ref=.*)?\ HTTP [NC]
#RewriteRule .? http://localhost/projects/v4%{REQUEST_URI}? [R=301,L]

</IfModule>

お手数をおかけしますが、よろしくお願いいたします。

4

1 に答える 1

1

問題の原因はJavaScriptではなく、.htaccessファイルです。ルールが正しく、競合していないことを確認してください。

ログインを含むのすべてのURLに一致するため、[R=301,L]ルールは最後にする必要があります。また、モジュールルールもメンバールールと一致するためv4、スワップMODULESと。MEMBERS

# MEMBERS
ReWriteRule ^login/(.*)/ ?module=login&a=$1 [L]

# MODULER
RewriteRule ^([^/\.]+)/?$ ?module=$1 [L]
RewriteRule .? http://localhost/projects/v4%{REQUEST_URI}? [R=301,L]
于 2011-11-06T12:24:45.813 に答える