【问题标题】:Jquery window.location.replace, redirects to only base URLJquery window.location.replace,仅重定向到基本 URL
【发布时间】:2011-12-23 00:52:01
【问题描述】:

我正在使用 .htaccess(mod 重写)来获得漂亮的 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>

感谢您的时间和关心。

【问题讨论】:

  • 为什么您的BASE 路径与页面 URL 的路径不同?我的意思是,当您在登录页面时,它们不应该是相等的http://localhost/projects/v4/login/ 吗?
  • 我是否必须在我的 html 中更改每个页面中的基本 URL,因为我正在使用 mod rewrite?这听起来没什么用。

标签: javascript jquery .htaccess seo base-url


【解决方案1】:

您的问题不是由 JavaScript 引起的,而是由您的 .htaccess 文件引起的。确保您的规则正确无误。

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

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

# MODULER
RewriteRule ^([^/\.]+)/?$ ?module=$1 [L]
RewriteRule .? http://localhost/projects/v4%{REQUEST_URI}? [R=301,L]

【讨论】:

  • 感谢您的宝贵时间。我做了改变。交换 MODULES 和 MEMBERS 并将RewriteRule .? http://localhost/projects/v4%{REQUEST_URI}? [R=301,L] 规则置于底部。这次当我尝试访问任何页面时,我得到 页面没有正确重定向 :(
  • 您还必须使用最后一条规则移动RewriteCond(我忘了在我的答案中复制它)。
  • 不幸的是,这没有帮助。由于某种原因,它仍然会回到 .htaccess 文件中的基本 URL / RewriteBase。 PHP 可以正确重定向,但 Javascript 不能。
  • 谢谢罗伯。我进行了更改,但我仍然被重定向到基本 url :( 我在 v4/ 文件夹中有它。一些文件夹也有 .htaccess 文件。除了主要的,其余的只是保护文件和/或关闭 mod重写。
  • 删除 RewriteBase 规则没有帮助。我正在使用 XAMPP。我的项目在htdocs/projects/v4/ 下。我不确定如何将 .htaccess 文件移动到一个文件夹上来解决这个问题。非常感谢您的帮助和时间。
猜你喜欢
  • 2021-01-30
  • 2012-03-14
  • 2016-12-16
  • 2017-02-22
  • 2014-07-04
  • 2015-09-24
  • 1970-01-01
  • 2010-11-24
  • 1970-01-01
相关资源
最近更新 更多