【问题标题】:htaccess redirect to non-www from wwwhtaccess 从 www 重定向到非 www
【发布时间】:2017-06-24 04:33:24
【问题描述】:

我在这个标题上看到了重复,但坦率地说,我是 PHP 新手,不知道 htaccess 是如何工作的。我从某人那里购买了这个脚本,但我没有从那个开发者那里得到帮助,这就是为什么我是唯一一个解决这个问题的人。

问题 我的旧脚本是由我制作的,它曾经被重定向到 http://socialdealers.in/Deals/,而新脚本是基于 CakePHP 的脚本,它显示了索引上的所有内容,但即使在从托管。

网站 http://socialdealers.in

  • 有时我会看到更新的脚本,但有时会被重定向 到/Deals/
  • 已尝试清除浏览器缓存和 cookie
  • 尝试使用不同的 IP 从我的手机打开,并且它适用于新脚本。

如果你们不明白我想说什么,我很抱歉,但我们将不胜感激。有开发者让我在stackoverflow上问一个问题,说是.htaccess的问题。

位置 1 .htaccess public_html/socialdealers.in/.htaccess

<IfModule mod_rewrite.c>

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule    ^$ app/webroot/    [L]
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule    (.*) app/webroot/$1 [L]

RewriteCond %{SERVER_PORT} !^445$
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

</IfModule>
<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>

位置 2 .htaccess public_html/socialdealers.in/app/.htaccess

# Use PHP5 as default

#AddHandler application/x-httpd-php54 .php

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

位置 3 .htaccess public_html/socialdealers.in/app/webroot/.htaccess

# Use PHP5 as default

#AddHandler application/x-httpd-php54 .php

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$  http://%{HTTP_HOST}/$1 [R=301,L]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

编辑: 在 Stackoverflow 之外解决了问题。

编辑第三个 htaccess 文件并将其更改为

# Use PHP5 as default

#AddHandler application/x-httpd-php54 .php

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

【问题讨论】:

  • 您的新旧脚本是否托管在同一台服务器上?如果托管在新服务器上,域 A 记录将需要时间才能在任何地方工作(有时至少需要 72 小时才能工作) - 并且还共享 htaccess 代码
  • 已经超过 72 小时了。旧脚本仍然显示。

标签: php .htaccess redirect cakephp cpanel


【解决方案1】:

您发布的两个链接都将我指向/Deals/,这是一个登录/注册页面。这不是你的目标吗?

(1) 如果您认为问题出在.htaccess 文件上,您能否展示您.htaccess 的内容以帮助我们所有人(包括您)解决您的问题。 .htaccess 文件位于您的网络服务器上,可能位于您网站的根文件夹中。

.htaccess 文件中的简单重定向示例如下所示:

Redirect 301 /OLDFILE.html /NEWFILE.html

在所有页面上使用正则表达式来强制非 www 重定向的另一个示例可能如下所示:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^YOURDOMAIN.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.YOURDOMAIN.com [NC]
RewriteRule ^(.*)$ http://YOURDOMAIN.net/$1 [L,R=301,NC]

(2) 如果您认为问题出在您的 PhP 代码上,那么您还可以发布更多关于您如何设置重定向的信息或简单地显示一些代码。

【讨论】:

  • 我在不同的文件夹中添加了 3 个 .htaccess。我将在主要问题中分享 htaccess 的路径和代码。
【解决方案2】:

在 Stackoverflow 之外解决。

编辑第三个 htaccess 文件并将其更改为

# Use PHP5 as default

#AddHandler application/x-httpd-php54 .php

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

【讨论】:

    猜你喜欢
    • 2014-07-26
    • 2011-04-12
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 2012-11-16
    • 2019-01-29
    • 1970-01-01
    相关资源
    最近更新 更多