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文件引起的。确保您的规则是正确的,并且没有冲突。

[R=301,L]规则应该放在最后,因为它匹配 中的每个 URL v4,包括登录名。此外,交换MODULESMEMBERS, 因为模块规则也匹配成员规则。

# 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 回答