php - 如果端口不是 80,.htaccess 重定向到错误页面

标签 php wordpress apache .htaccess port

我正在运行 portable server通过 U 盘。问题是我也在我的本地机器上安装了 WAMP,并且 Apache 以某种方式在 Windows 启动时启动,因为一些我现在不记得的随机原因并且它无法更改。我想在这种情况下准备我的可移植服务器,因此从进程中关闭 httpd.exe 并启动我的可移植服务器不是一种选择。无论如何,因为已经激活了 httpd.exe,我的可移植服务器的 WordPress 站点只能通过 localhost:81 访问——这是一个问题,因为 WP 站点非常依赖于 URL,我不想在 WP 上包含带有端口的 url数据库。

这是我想通过 .htaccess 做的事情:

  • 在除 error.php 文件之外的任何路径上检查是否不是端口 80
  • 如果不是80端口重定向到/error.php?code=port

它有可能优先于 WP 重定向或 URL 处理吗?

在 error.php 中,我提供了有关如何手动关闭 httpd.exe 等信息,以便我的家人和 friend 可以访问可移植网站。它有点像用于事件和其他类似内容的图库和日历应用程序...

请帮忙?我是我完全想不通。我知道其他人可能还没有运行 apache,但我想为这种情况做好准备。

类似于以下内容,但以下内容不起作用。

# BEGIN WordPress
<IfModule mod_rewrite.c>
    <If "%{SERVER_PORT} = 80">
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </If>
    <Else>
    RewriteEngine On
    RewriteRule ^(error.php)($|/) - [L]
    RewriteRule ^(.*)$ /error.php?code=port [L]
    </Else>
</IfModule>
# END WordPress

最佳答案

#  <If "%{SERVER_PORT} = 80">
RewriteEngine On
RewriteBase /
RewriteCond  %{SERVER_PORT} ^80$ 
RewriteRule ^index\.php$ - [L]
RewriteCond  %{SERVER_PORT} ^80$ 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
#</If>
#<Else>
RewriteEngine On
RewriteCond  %{SERVER_PORT} !^80$ 
RewriteRule ^(error.php)($|/) - [L]
RewriteCond  %{SERVER_PORT} !^80$ 
RewriteRule ^(.*)$ /error.php?code=port [L]
#</Else>

关于php - 如果端口不是 80,.htaccess 重定向到错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12540539/

相关文章:

php - 为什么更新和选择两者不适用于同一个表

php - Royalslider 和 Picturefill.js

wordpress - 为什么使用 GNU gettext?

wordpress - Safari 和 IE 不响应菜单元素的高度

php - 阻止访问 php.ini 文件

php - laravel 和 apache mod_status

php - Apache 2.4.6 无法加载 PHP 5.5.4

带有显式 TLS/SSL 的 PHP curl FTPes

php - 试图了解 array_diff_uassoc 优化

php - 如何在 Azure 托管的 dotnet core Web 应用程序上托管 php 脚本