【问题标题】:Htaccess Directs to Online When I Want to Work On Localhost当我想在本地主机上工作时,Htaccess 重定向到在线
【发布时间】:2021-06-02 05:03:44
【问题描述】:

我将本地服务器 Apache 更改为 XAMPP。之后,我的项目已经开始访问在线网站 yusufcode.com(我的网站链接),而我想在 localhost 上工作。问题出在哪里?这是第一个问题。

我的第二个问题是我的链接在本地主机上没有 .php 扩展名时不起作用。

Htaccess:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*)$ $1.php 
RewriteRule ^([a-z]+)\/?$ $1.php [NC]

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.yusufcode.com/$1 [R,L]

【问题讨论】:

  • “我将本地服务器 Apache 更改为 XAMPP” - XAMPP Apache - 这就是“A”的含义。 (?)

标签: .htaccess localhost


【解决方案1】:

哦...我发现了问题。问题是本地主机端口号。

我将端口号更改为:

RewriteCond %{SERVER_PORT} 80

到这里:

RewriteCond %{SERVER_PORT} 443

所有问题都解决了。再次感谢stackoverflow。这个平台总是帮助我,即使没有人不回答:)

【讨论】:

  • 但这没有意义......如果你只是在最后一条规则中将80 更改为443 然后在本地主机上(你可能没有SSL证书并且正在访问仅通过 HTTP 的站点)然后该规则被简单地绕过。但是在一个实时站点上,您可能确实拥有 SSL 证书并且正在通过 HTTPS 访问该站点,那么它将创建一个重定向循环并且该站点将无法访问?!
【解决方案2】:

你应该这样写:

Options -MultiViews

RewriteEngine on

# Redirect to HTTPS (and www) but only on "live" site
RewriteCond %{HTTP_HOST} !^www\. [OR]
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^(?:www\.)?(yusufcode\.com) [NC]
RewriteRule (.*) https://www.%1/$1 [R=301,L]

# Handle extensionless .php files
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1.php -f 
RewriteRule (.*) $1.php [L]

处理无 PHP 扩展 URL 的原始指令存在许多问题...第二个 RewriteRule 无条件运行。文件检查可能正在测试所请求的文件不同的文件。


更新:这当然假设在您的本地 Apache 服务器上的服务器配置中启用了 .htaccess 覆盖。这不是 Apache 2.4 的默认设置。使用AllowOverride 指令启用.htaccess 覆盖。

例如,在你的服务器配置中,你需要这样的东西:

<Directory /path/to/document-root/>
    # Allow access
    Require all granted

    # Allow all htaccess overrides
    AllowOverride All
</Directory>

默认为AllowOverride None

【讨论】:

  • 在本地主机上没有 .php 扩展名时无法打开页面。
  • 只有当您的 PHP 文件基名也与目录名匹配时才会发生这种情况。如果是这种情况,则删除 first_condition_(即!-d)。但是,这确实假定 .htaccess 覆盖并且在您的本地服务器上启用了 mod_rewrite。 .htaccess 在 Apache 上默认不启用覆盖。我会更新我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-29
  • 1970-01-01
  • 1970-01-01
  • 2015-10-15
  • 2012-05-03
  • 2017-01-27
相关资源
最近更新 更多